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

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

公有继承(public inheritance):

公有继承是最常见的继承方式。

派生类继承了基类的公有成员和保护成员作为它自己的公有和保护成员,但不继承基类的私有成员。

公有继承中,基类的公有成员在派生类中仍然是公有的,可以通过派生类的对象访问。

基类的保护成员在派生类中变成了保护的,只能在派生类内部或者派生类的友元函数中访问。

cpp 复制代码
class Base {
public:
    int publicMember;
protected:
    int protectedMember;
private:
    int privateMember;
};

class Derived : public Base {
    // publicMember在Derived中仍然是公有的
    // protectedMember在Derived中变成了保护的
    // privateMember在Derived中无法访问
};

保护继承(protected inheritance):

保护继承继承了基类的公有和保护成员作为它自己的保护成员,但不继承基类的私有成员。

在保护继承中,基类的公有成员在派生类中变成了保护的,只能在派生类内部或者派生类的友元函数中访问。

基类的保护成员也在派生类中变成了保护的。

cpp 复制代码
class Base {
public:
    int publicMember;
protected:
    int protectedMember;
private:
    int privateMember;
};

class Derived : protected Base {
    // publicMember在Derived中变成了保护的
    // protectedMember在Derived中也是保护的
    // privateMember在Derived中无法访问
};

私有继承(private inheritance):

私有继承继承了基类的公有和保护成员作为它自己的私有成员,但不继承基类的私有成员。

在私有继承中,基类的所有成员在派生类中都变成了私有的,只能在派生类内部访问,不能在外部访问。

cpp 复制代码
class Base {
public:
    int publicMember;
protected:
    int protectedMember;
private:
    int privateMember;
};

class Derived : private Base {
    // publicMember在Derived中变成了私有的
    // protectedMember在Derived中也是私有的
    // privateMember在Derived中无法访问
};
相关推荐
pursuit_csdn14 分钟前
LeetCode 1461. Check If a String Contains All Binary Codes of Size K
算法·leetcode·职场和发展
Crazy________1 小时前
力扣113个mysql简单题解析(包含plus题目)
mysql·算法·leetcode·职场和发展
禾味1 小时前
过程即奖励|前端转后端经验分享
前端·后端·面试
YxVoyager1 小时前
基于 X-Macro 宏的手动 RTTI 实现模式
c++
Ryan今天学习了吗1 小时前
前端知识体系总结-前端工程化(Webpack篇)
前端·面试·前端工程化
Ryan今天学习了吗1 小时前
前端知识体系总结-前端工程化(Babel篇)
前端·面试·前端工程化
Ryan今天学习了吗2 小时前
前端知识体系总结-前端工程化(Vite篇)
前端·面试·前端工程化
wanderist.2 小时前
算法模板-线段树
c++·算法
lcj25112 小时前
蓝桥杯C++梳理(1):从入门到数组
c++·算法
wanderist.2 小时前
算法模板-01trie数
c++·算法