【发布时间】:2017-09-13 06:23:09
【问题描述】:
在下面给出的代码中,要访问 B 的私有数据成员,我们可以使用 B 类的成员函数并返回数据成员,然后在构造函数(转换器函数)中将其分配给 A 的数据成员。但我无法这样做。请提出一些帮助。其他方式可以使 Class A 成为 B 的朋友,但需要通过构造函数访问。
#include <iostream>
using namespace std;
class B
{
int i_;
public:
B(int i = 3) : i_(i) {}
int give() { return i_; }
};
class A
{
int i_;
public:
A(int i = 0) : i_(i) { cout << "A::A(i)\n"; }
A(const B &b1) : i_(b1.i_) {} // Type casting using constructor
int display() { cout << i_; }
};
int main()
{
A a;
B b; // object is constructed
a = static_cast<A>(b); // B::operator A(), converting data member of class B to class A
a.display();
return 0;
}
【问题讨论】: