内部类访问私有变量
在 C 中,内部类嵌套在其他类中,并具有特殊的访问权限。那么问题来了:内部类可以访问父类的私有变量吗?
答案是可以。内部类本质上是它们所定义的类的友元。这意味着内部类的对象可以直接访问其父类对象的私有成员。
但是,与Java不同的是,内部类对象和父类对象之间不存在隐式的父子关系。其父类的对象。要建立这种关系,必须将父类对象显式传递给内部类的构造函数。
下面是演示内部类访问私有变量的代码示例:
#include <iostream> class Outer { private: int var = 4; static const char* const MYCONST = "myconst"; public: class Inner { public: Inner(Outer& parent) : parent(parent) {} void func() { std::cout << parent.var << std::endl; } private: Outer& parent; }; }; int main() { Outer outer; Outer::Inner inner(outer); inner.func(); return 0; }
在此例如,内部类 Inner 有一个构造函数,它将父 Outer 对象的引用作为参数。这就建立了父子关系,允许内部类访问外部对象的私有变量var。
当调用Inner::func()时,它会打印私有变量var的值,演示内部类确实可以访问其父类的私有变量。
以上是C 中的内部类可以访问其父类的私有变量吗?的详细内容。更多信息请关注PHP中文网其他相关文章!