当前位置: 首页 > news >正文

C++:继承

上篇帖子我们讲了类之间的横向关系,本帖将讲述纵向关系:继承。

说到继承儿子,我们可以联想到儿子继承父亲的遗产,在编程中我们可以理解为一个类获得另一个类的成员变量和成员函数的过程。

被继承的类叫作父类或基类,继承的类称为子类或派生类。

子类除了可以继承父类的成员,还可以定义新的成员。

应用场景:

1.当你要创建多个类,他们拥有部分相似的成员,则可以将相似部分提取出来作为父类,然后各个子类继承父类,可以减少代码量。

2.当你要新建一个类时,发现他与现有的类相似,只是多出某些成员,也可应用继承,同样可以减少代码量。

使用格式:

class 父类名
{
    成员
};

class 子类名 :继承方式 父类名
{
    子类中新成员
};

例如:

class Father
{
public:
	int a;

};

class Son : public Father
{
public:
	int d;

};

父类成员在子类中的访问方式最高不会高过继承方式,如下:

继承方式父类子类父类子类父类子类
publicpublicpublicprotectedprotectedprivate不可见
protectedpublicprotectedprotectedprotectedprivate不可见
privatepublicprivateprotectedprivateprivate不可见

例如:子类以protected方式继承父类,则父类中以public访问的成员在子类中的访问方式为protected。

注意:类的默认继承方式为private。

相关文章:

  • WordPress R+L Carrier Edition sql注入漏洞复现(CVE-2024-13481)(附脚本)
  • 高效管理 React 状态和交互:我的自定义 Hooks 实践
  • BigDecimal线上异常解决方案:避免科学计数法输出的坑
  • Maven 依赖的深入理解(一)
  • 告别 Freetype,拥抱高效字体处理新方案 - 纯c#解析字体库
  • Ajax数据采集与分析详解
  • Linux | RHEL / CentOS 中 YUM history / downgrade 命令回滚操作
  • 消息中间件 --- Apache Pulsar
  • C语言--正序、逆序输出为奇数的位。
  • 解决 Git 合并冲突:当本地修改与远程提交冲突时
  • [回顾]从原型链视角解读Vue底层实现Vue VueCompoent VM VC关系
  • 便捷高效的免费 PDF 文件处理帮手
  • 【Linux】gdb/cgdb调试工具
  • Language Models are Unsupervised Multitask Learners,GPT-2详细讲解
  • 后端返回文件流,前端导出excel文件
  • 易基因:RNA甲基化修饰和R-loop的交叉调控:从分子机制到临床意义|深度综述
  • 最好的Git实践指南(Windows/Linux双系统详解)
  • rabbitmq 延时队列
  • 【Python】Python判断语句经典题(一)
  • Linux: network: advertised our address
  • 词条数量大幅扩充,《辞海》第八版启动编纂
  • 现场丨在胡适施蛰存等手札与文献间,再读百年光华
  • 杭勇已任常州市政协党组成员,此前任常州市委常委、秘书长
  • 杭州“放大招”支持足球发展:足球人才可评“高层次人才”
  • “救护车”半路加价?陕西卫健委已介入,记者调查:黑救护车挤占市场
  • 中国恒大:清盘人向香港高等法院申请撤回股份转让