【面试刷题】——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中无法访问
};
相关推荐
黄敬峰14 分钟前
前端路由到底是个啥?React Router v7 从零到一,大白话一次讲透
前端·面试
晨米酱22 分钟前
Matt Pocock Skills v1.2:控制从主流程深入到每一步
面试·架构·agent
呜喵王阿尔萨斯28 分钟前
extern “C“ in C++
c语言·c++·算法
乐观勇敢坚强的老彭1 小时前
C++信奥静态数组和动态数组
数据结构·c++·算法
gumichef1 小时前
第一章:面向对象核心——类和对象深度讲解
开发语言·c++
ao-weilai1 小时前
C++基础:类和对象
开发语言·c++
郝学胜-神的一滴1 小时前
[简化版 GAMES 104] 现代游戏引擎 04:从0到1构建你的游戏世界
c++·游戏·unity·游戏引擎·软件工程·unreal engine
Bryce学亮1 小时前
FileLine,基于 Qt 6 + QML 构建的跨平台文件传输与即时通讯工具
数据库·c++·人工智能·python·qt·github
旖旎夜光2 小时前
LeetCode 991: 坏了的计算器(贪心算法) —— 题解
数据结构·c++·算法·leetcode·贪心算法