【面试刷题】——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中无法访问
};
相关推荐
海绵宝宝转agent2 小时前
JUC高频面试八股总结个人开源
面试·职场和发展
Nil2083 小时前
leetcode 118杨辉三角
算法·leetcode·职场和发展
NeilYuen4 小时前
【C++】STL源码仿写(二):vector
开发语言·c++
郝学胜_神的一滴5 小时前
游戏引擎原理与实践 04:拆解引擎基础系统与内存管理
c++·游戏
All for pursuit.5 小时前
【设计-1】208.实现Trie (前缀树)
数据结构·c++·算法·leetcode
weixin_307779135 小时前
C++代码实现MATLAB中的crossval函数功能
开发语言·c++·算法·matlab
青少儿编程课堂5 小时前
背包问题(0/1 背包与完全背包)解题精讲——动态规划入门
c++·python·算法·bfs·信息学竞赛
倒头就睡的小比特6 小时前
C++多态
c++
我命由我123457 小时前
Photoshop - Photoshop 使用内容识别填充移除对象
学习·职场和发展·产品运营·求职招聘·职场发展·学习方法·photoshop
潼心1412o8 小时前
C++初阶(长期更新)第5讲:类和对象(中)
开发语言·c++