<分区>
标题已经说了很多,
但基本上我想做的是以下(示例):
我有一个名为 A 的类,还有一个名为 B 的类,如下所示:
class A
{
int a;
class B
{
void test()
{
a = 20;
}
};
};
如您所见,我的目标是让 B 类能够访问 A 类,因为它是一个嵌套类。不是这样行不通,因为 B 没有访问 A 的权限,但它如何获得访问权限?
谢谢
<分区>
标题已经说了很多,
但基本上我想做的是以下(示例):
我有一个名为 A 的类,还有一个名为 B 的类,如下所示:
class A
{
int a;
class B
{
void test()
{
a = 20;
}
};
};
如您所见,我的目标是让 B 类能够访问 A 类,因为它是一个嵌套类。不是这样行不通,因为 B 没有访问 A 的权限,但它如何获得访问权限?
谢谢
最佳答案
尽管您在 A 内部声明了 B 类,但 A 类和 B 类仍然是完全独立的。唯一的区别是现在要引用 B,必须执行 A::B。
对于B访问A的东西,你应该使用组合或继承。对于组合,为 B 提供对 A 的对象的引用,如下所示:
class B {
public:
B(const A& aObj) : aRef(aObj) {
cout << aRef.a << endl;
}
private:
const A& aRef;
};
对于继承,像这样:
class B: public A { // or private, depending on your desires
B() {
cout << a << endl;
}
}
关于C++ 嵌套类,访问父变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12849013/