• 【面试刷题】——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
  • 相关阅读:
    电池SOC仿真系列-基于粒子群算法电池参数辨识
    C++面试八股文:std::string是如何实现的?
    CCF CSP 201403-2 窗口 题解
    【面试题】JS改变this指向的三种方法
    AHU 汇编 实验二
    收藏这些素材网站,不再担心没有剪辑素材
    Prometheus+Ansible+Consul实现服务发现
    “元宇宙”最权威的解释来了!全国科技名词委研讨会达成共识
    2:开发环境搭建-Java Web
    计算机毕业设计(附源码)python支持协作知识建构的Python程序设计课程学习活动平台
  • 原文地址:https://blog.csdn.net/weixin_55799469/article/details/132928029