• c++学习之 继承的方式


    在这里插入图片描述
    在C++中,继承方式(或继承访问权限)有三种:public、protected 和 private,它们决定了派生类(子类)对基类(父类)成员的访问权限,它们之间的区别如下:

    public 继承:

    当使用 public 继承时,基类的公有成员在派生类中仍然保持为公有成员,基类的保护成员在派生类中变为保护成员,基类的私有成员在派生类中不可访问。
    派生类的对象可以访问基类的公有成员,但不能访问基类的私有成员。
    public 继承用于表示派生类是一个基类的特化,派生类的对象可以被当作基类的对象来使用。
    protected 继承:

    当使用 protected 继承时,基类的公有和保护成员在派生类中都变为保护成员,基类的私有成员在派生类中不可访问。
    派生类的对象可以访问基类的保护成员,但不能访问基类的公有成员或私有成员。
    protected 继承用于表示派生类是一个基类的实现细节,并不希望外部使用者直接访问基类的接口。
    private 继承:

    当使用 private 继承时,基类的公有和保护成员在派生类中都变为私有成员,基类的私有成员在派生类中不可访问。
    派生类的对象不能访问基类的公有、保护或私有成员。
    private 继承用于表示派生类是一个基类的实现细节,但不希望派生类公开任何基类的接口,通常用于实现细节的隐藏。
    下面是一个示例来说明这些概念:

    class Base {
    public:
        int publicMember;
    protected:
        int protectedMember;
    private:
        int privateMember;
    };
    
    class PublicDerived : public Base {
        // publicMember 在这里是公有的
        // protectedMember 在这里是保护的
        // privateMember 在这里不可访问
    };
    
    class ProtectedDerived : protected Base {
        // publicMember 在这里是保护的
        // protectedMember 在这里是保护的
        // privateMember 在这里不可访问
    };
    
    class PrivateDerived : private Base {
        // publicMember 在这里是私有的
        // protectedMember 在这里是私有的
        // privateMember 在这里不可访问
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    总之,不同的继承方式决定了派生类如何继承基类的成员以及外部代码对这些成员的可见性。选择合适的继承方式取决于你的设计需求和目标。

  • 相关阅读:
    SpringBoot整合Kafka (一)
    linux控制组: cpuset解析
    MySQL性能优化实践:SQL查询优化之使用只读索引、IN方法和临时表分批查询(附加:索引的创建删除命令)
    Virtio1.2 新功能介绍
    解析“Web3悖论”的内在机理与突破路径
    react 使用npm构建 不支持ie问题的记录,ie报不支持contains
    向虚拟机里拖文件,VMtools安装问题
    【逗老师的无线电】宝峰1701刷OpenGD77
    MySQL的复制
    Qt基础教程:QAbstractButton
  • 原文地址:https://blog.csdn.net/wniuniu_/article/details/133617346