C++嵌套类,访问父类变量

Mig*_*l P 5 c++ nested class parent

标题已经说了很多,

但基本上我想做的是以下(示例):

我有一个名为A的类,另一个名为B的类,如下所示:

class A
{
   int a;

   class B
   {
      void test()
      {
         a = 20;
      }
   };
};
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我的目标是让B类可以访问A类,因为它是一个嵌套类.不是这个不会工作,因为B无法访问A,但它如何才能访问?

谢谢

Phi*_*lip 10

尽管您在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;
};
Run Code Online (Sandbox Code Playgroud)

对于继承,这样的事情:

class B: public A { // or private, depending on your desires
  B() {
    cout << a << endl;
  }
}
Run Code Online (Sandbox Code Playgroud)