首页 > 后端开发 > C++ > C 中的内部类可以访问其父类的私有变量吗?

C 中的内部类可以访问其父类的私有变量吗?

Mary-Kate Olsen
发布: 2024-11-29 08:04:10
原创
293 人浏览过

Can Inner Classes in C   Access Their Parent Class's Private Variables?

内部类访问私有变量

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板