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

标签 c++ class nested parent

<分区>

标题已经说了很多,

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

我有一个名为 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/

相关文章:

c++ - 检查字符串是否包含数字的函数

c++ - 为 vector<double> 类重载 *, +, -' 运算符

c++ - 嵌套模板中的运算符= (T *r)

c++ - C++/编译器/重载中的二维数组

c# - 将纯 C# 对象传递给 C++ 并对该对象调用方法

PHP 类实例化。使用或不使用括号?

C++:如何访问另一个类中的类函数?

c++ - 为什么我在编译时总是出错:包括嵌套太深的C++

html - 如何在图像左下角 float div?

c# - 如何使用命名空间与 C++ 互操作