news 2026/4/18 3:52:19

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/18 3:51:52

互联网大厂Java面试实战:核心语言、微服务与AI技术全解析

互联网大厂Java面试实战&#xff1a;核心语言、微服务与AI技术全解析 面试背景 本次面试场景设定在一家互联网大厂&#xff0c;求职者谢飞机应聘Java后端开发岗位。面试官严肃专业&#xff0c;谢飞机则以幽默风趣的风格面对问题。面试涵盖Java核心技术、微服务架构、大数据处理…

作者头像 李华
网站建设 2026/4/17 12:35:57

springboot毕业设计在线寻亲网任务书 开题报告

目录毕业设计任务书&#xff1a;在线寻亲网&#xff08;SpringBoot实现&#xff09;开题报告结构建议项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作毕业设计任务书&#xff1a;在线寻亲网&#xff08;Spr…

作者头像 李华
网站建设 2026/4/18 3:44:48

人工智能应用- 语言处理:02.机器翻译:规则方法

语言的多样性为人类交流带来了巨大的障碍。因此&#xff0c;自计算机诞生之初&#xff0c;科学家们便开始设想利用机器来实现跨语言的沟通。1947 年&#xff0c;美国数学家沃伦韦弗&#xff08;Warren Weaver&#xff09;首次提出了机器翻译的设想&#xff0c;并在 1949 年发表…

作者头像 李华
网站建设 2026/4/16 10:54:08

人工智能应用- 语言处理:04.统计机器翻译

20 世纪 80 年代末&#xff0c;研究者开始探索基于数据驱动的统计机器翻译&#xff08;Statistical Machine Translation, SMT&#xff09;方法。1990 年&#xff0c;IBM Watson 的研究者在《Computational Linguistics》上发表了题为《A Statistical Approach to Ma- chine Tr…

作者头像 李华
网站建设 2026/4/16 5:04:33

模型加速十年演进

模型加速&#xff08;Model Acceleration&#xff09; 的十年&#xff08;2015–2025&#xff09;&#xff0c;是从“算力暴力输出”向“效率极致压榨”&#xff0c;再到“系统级原生对齐”的深刻演进。 这十年中&#xff0c;模型加速完成了从单一算子优化到端到端全链路加速&a…

作者头像 李华
网站建设 2026/4/16 10:14:45

HoRain云--CentOS7中国IP访问限制实战指南

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …

作者头像 李华