news 2026/6/15 18:49:33

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/6/15 10:26:26

关系数据库替换用金仓:数据迁移过程中的完整性与一致性风险

这篇不打算做“迁移工具清单”。我更想把它写成替换项目里的对账/验收笔记&#xff1a;哪些坑最爱在切换前后冒头&#xff0c;哪些检查在 Windows ksql 的环境里就能用很小的成本跑起来。目标也很直白&#xff1a;别只停留在“迁过去了”&#xff0c;而是要做到“迁得对、跑得…

作者头像 李华
网站建设 2026/6/15 10:28:20

模型迁移十年演进

模型迁移&#xff08;Model Migration / Transfer Learning&#xff09; 的十年&#xff08;2015–2025&#xff09;&#xff0c;是从“特征提取的降维打击”向“基础模型的领域泛化”&#xff0c;再到“跨硬件、跨模态的自治化迁移”的演进。 这十年中&#xff0c;模型迁移完…

作者头像 李华
网站建设 2026/6/15 10:24:25

大模型服务化十年演进

大模型服务化&#xff08;Model Serving&#xff09; 的十年&#xff08;2015–2025&#xff09;&#xff0c;是从“简单 API 包装”向“高并发、极致吞吐”&#xff0c;再到“系统级原生编程与内核自适应调度”的跨越。 这十年中&#xff0c;服务化技术完成了从静态管道&#…

作者头像 李华
网站建设 2026/6/15 10:28:04

打卡信奥刷题(2813)用C++实现信奥题 P4160 [SCOI2009] 生日快乐

P4160 [SCOI2009] 生日快乐 题目描述 windy 的生日到了&#xff0c;为了庆祝生日&#xff0c;他的朋友们帮他买了一个边长分别为 XXX 和 YYY 的矩形蛋糕。 现在包括 windy&#xff0c;一共有 NNN 个人来分这块大蛋糕&#xff0c;要求每个人必须获得相同面积的蛋糕。 windy 主刀…

作者头像 李华