• 【面试刷题】——C++公有继承保护继承和私有继承


    在C++中,有三种继承方式:公有继承(public inheritance)、保护继承(protected inheritance)和私有继承(private inheritance)。这些继承方式决定了派生类如何继承基类的成员和访问权限。

    公有继承(public inheritance):

    公有继承是最常见的继承方式。
    派生类继承了基类的公有成员和保护成员作为它自己的公有和保护成员,但不继承基类的私有成员。
    公有继承中,基类的公有成员在派生类中仍然是公有的,可以通过派生类的对象访问。
    基类的保护成员在派生类中变成了保护的,只能在派生类内部或者派生类的友元函数中访问。

    class Base {
    public:
        int publicMember;
    protected:
        int protectedMember;
    private:
        int privateMember;
    };
    
    class Derived : public Base {
        // publicMember在Derived中仍然是公有的
        // protectedMember在Derived中变成了保护的
        // privateMember在Derived中无法访问
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    保护继承(protected inheritance):

    保护继承继承了基类的公有和保护成员作为它自己的保护成员,但不继承基类的私有成员。
    在保护继承中,基类的公有成员在派生类中变成了保护的,只能在派生类内部或者派生类的友元函数中访问。
    基类的保护成员也在派生类中变成了保护的。

    class Base {
    public:
        int publicMember;
    protected:
        int protectedMember;
    private:
        int privateMember;
    };
    
    class Derived : protected Base {
        // publicMember在Derived中变成了保护的
        // protectedMember在Derived中也是保护的
        // privateMember在Derived中无法访问
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    私有继承(private inheritance):

    私有继承继承了基类的公有和保护成员作为它自己的私有成员,但不继承基类的私有成员。
    在私有继承中,基类的所有成员在派生类中都变成了私有的,只能在派生类内部访问,不能在外部访问。

    class Base {
    public:
        int publicMember;
    protected:
        int protectedMember;
    private:
        int privateMember;
    };
    
    class Derived : private Base {
        // publicMember在Derived中变成了私有的
        // protectedMember在Derived中也是私有的
        // privateMember在Derived中无法访问
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    SAP PI/PO中使用UDF解决按字节拆分字符串的需求
    NT68661-屏参升级-RK3128-开机自己升级屏参
    用神经网络模拟3个距离为0的粒子
    vue.js学习笔记(二)
    ES6类和继承
    算法设计与分析之算法绪论
    Java集合框架
    在Adult数据集上使用pandas进行独热编码,之后部署Logistic Regression模型
    机器人抓取(七、八)—— kinect 相机的 ros 服务器及 基于gqcnn 抓取 ros 服务器
    金仓数据库 KingbaseGIS 使用手册(6.4. 几何对象存取函数)
  • 原文地址:https://blog.csdn.net/weixin_55799469/article/details/132928029