news 2026/4/11 2:32:18

C++之继承的方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++之继承的方式
  • 继承,基于一个已有类创建新类,使新类与已有类具有同样的功能,即新类具有已有类相同的数据成员和成员函数。
  • 继承是代码重用的基本工 具。已有类称为基类(父类 /超类),新类称为派生类(子类)

  • 注意:
    • 基类的构造函数和析构函数不能继承
    • 基类的友元函数不能继承
    • 静态数据成员和静态成员函数不能继承

继承的方式

  • C++的继承可以分为公有继承、保护继承和私有继承
  • 不同继承方式会不同程度影响基类成员在派生类的访问权限
  • 语法格式:
class派生类名:继承方式 基类名{派生类成员声明与定义}
访问控制限定符访问控制属性内部子类外部友元
public公有成员okokokok
protected保护成员okoknook
private私有成员oknonook
基类中的在公有子类中变成在保护子类中变成在私有子类中变成
公有成员公有成员保护成员私有成员
保护成员保护成员保护成员私有成员
私有成员私有成员私有成员私有成员

公有继承

  • 继承方式为public的继承称为公有继承,在这种继承中,基类成员的访问权限在派生类中保持不变
#include<iostream>usingnamespacestd;classBase{private:intm_a;protected:intm_b;public:intm_c;Base(inta=1,intb=2,intc=3){m_a=a;m_b=b;m_c=c;}intgeta(){returnm_a;}};classDerived:publicBase{public:voidprint(){//cout << m_a << endl; //errorcout<<geta()<<endl;cout<<m_b<<endl;cout<<m_c<<endl;}};intmain(void){Derived test;//cout << test.m_a << endl; // error private//cout << test.m_b << endl; // error protectedcout<<test.m_c<<endl;return0;}

保护继承

#include<iostream>usingnamespacestd;classBase{private:intm_a;protected:intm_b;public:intm_c;Base(inta=1,intb=2,intc=3){m_a=a;m_b=b;m_c=c;}intgeta(){returnm_a;}};classDerived:protectedBase{public:voidprint(){//cout << m_a << endl; //errorcout<<geta()<<endl;cout<<m_b<<endl;cout<<m_c<<endl;}};intmain(void){Derived test;//cout << test.m_a << endl; // error private//cout << test.m_b << endl; // error protectedcout<<test.m_c<<endl;//protected继承 子类中该变量为protected errorreturn0;}

私有继承

#include<iostream>usingnamespacestd;classBase{private:intm_a;protected:intm_b;public:intm_c;Base(inta=1,intb=2,intc=3){m_a=a;m_b=b;m_c=c;}intgeta(){returnm_a;}};classDerived:privateBase{public:voidprint(){//cout << m_a << endl; //errorcout<<geta()<<endl;cout<<m_b<<endl;cout<<m_c<<endl;}};intmain(void){Derived test;//cout << test.m_a << endl; // error private//cout << test.m_b << endl; // private继承 error private//cout << test.m_c << endl; //private继承 子类中该变量为private errorreturn0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 17:32:52

计算机小程序毕设实战-基于springboot+小程序的社区资产管理app设计与实现基于springboot+vue实现的数据资产管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/2 18:23:30

模型集成十年演进

模型集成&#xff08;Model Ensembling&#xff09; 的十年&#xff08;2015–2025&#xff09;&#xff0c;是从“投票与堆叠”向“权重融合&#xff08;Weight Merging&#xff09;”&#xff0c;再到“大模型协作体系&#xff08;Multi-Agent Collaboration&#xff09;”的…

作者头像 李华
网站建设 2026/4/9 22:55:54

oracle 19c创建CDB和非CDB模式

# 静默安装响应文件&#xff08;db_install.rsp&#xff09;核心配置 oracle.install.db.InstallEditionEE oracle.install.db.OSDBA_GROUPdba oracle.install.db.OSOPER_GROUPoper # 核心&#xff1a;决定CDB/非CDB模式 CREATE_AS_CDBYES # YESCDB&#xff0c;NO非CDB # 仅当…

作者头像 李华
网站建设 2026/4/8 17:26:51

2026年软件测试公众号热度内容全景解析

一、热度最高的三大内容类型及核心特征 2026年&#xff0c;软件测试公众号的爆款内容呈现高度专业化趋势&#xff0c;阅读量破万的文章集中于三类垂直领域&#xff0c;占比超80%&#xff0c;均以解决从业者实际痛点为驱动&#xff1a; AI与自动化测试工具评测 热度占比&#x…

作者头像 李华
网站建设 2026/4/8 20:05:17

[信息论与编码理论专题-40]:算术编码的优缺点与应用场景

算术编码&#xff08;Arithmetic Coding&#xff09;是信息论中一种接近理论极限的无损数据压缩方法&#xff0c;相比哈夫曼编码等传统方法具有显著优势&#xff0c;但也存在一些局限。以下是其核心优缺点与典型应用场景的清晰梳理&#xff1a; 一、优点 ✅ 1. 压缩效率极高&a…

作者头像 李华