首页 > 后端开发 > C++ > 访问说明符(私有、受保护、公共)如何影响继承中的成员可访问性?

访问说明符(私有、受保护、公共)如何影响继承中的成员可访问性?

Mary-Kate Olsen
发布: 2024-12-16 18:11:11
原创
131 人浏览过

How Do Access Specifiers (private, protected, public) Affect Member Accessibility in Inheritance?

理解继承中的访问说明符

继承允许类从父类继承成员和功能,但这些继承成员的可访问性取决于使用的访问说明符。访问说明符 private、protected 和 public 控制如何在继承的类中访问成员。

私有继承

  • 基类的私有成员在派生类。
  • 基类的受保护成员和公共成员在派生类中变为私有成员类。
  • 派生类失去访问基类的私有成员的能力。

示例:

class Base {
private:
    int private_member;
};

class Derived : private Base {
public:
    void accessPrivate() {
        // Error: Cannot access 'private_member' because it's private in 'Base'
    }
};
登录后复制

受保护继承

  • 基类的公共成员在派生类中受到保护。
  • 基类的受保护成员在派生类中仍然受到保护。
  • 派生类可以直接访问基类的受保护成员,也可以通过指向基类的指针访问

示例:

class Base {
protected:
    int protected_member;
};

class Derived : protected Base {
public:
    void accessProtected() {
        protected_member = 100; // Allowed
    }
};
登录后复制

公共继承

  • 公共和受保护成员基类在派生类中成为公共类。
  • 基类的私有成员在派生类中保持私有。
  • 派生类可以直接或通过访问基类的所有公共成员指针。

示例:

class Base {
public:
    int public_member;
};

class Derived : public Base {
public:
    void accessPublic() {
        public_member = 200; // Allowed
    }
};
登录后复制

注意事项:

  • 访问说明符适用于每个类,不是每个对象。
  • 派生类只能访问自己的基类对象的成员。
  • 朋友可以访问类的所有成员,无论访问说明符如何。

以上是访问说明符(私有、受保护、公共)如何影响继承中的成员可访问性?的详细内容。更多信息请关注PHP中文网其他相关文章!

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