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

C++ 继承方式使用场景(极简版)

1. 公有继承(public

什么时候用?

  • “是一个”(is-a)关系:派生类 基类的一种。
    • 例:class Dog : public Animal(狗是动物)
  • 最常见,90%的继承都用它

2. 保护继承(protected

什么时候用?

  • “实现继承”:只希望派生类能访问基类成员,外部不能访问
    • 例:工具类继承,基类方法仅供派生类内部使用。

3. 私有继承(private

什么时候用?

  • “用…实现”(has-a 的替代方案)
    • 派生类 内部使用 基类功能,但 不暴露接口
    • 例:class Stack : private LinkedList(栈用链表实现,但对外不暴露链表方法)。

4. 多重继承

什么时候用?

  • 组合多个功能:一个类需要 同时具备多个基类特性
    • 例:class Smartphone : public Phone, public Camera(智能手机既是电话又是相机)。
  • ⚠️ 注意:避免基类有同名成员(会冲突)。

5. 虚拟继承(virtual

什么时候用?

  • 解决"钻石继承"问题(一个基类被多次继承)。
    • 例:
      class A {};
      class B : virtual public A {};  // 虚拟继承
      class C : virtual public A {};
      class D : public B, public C {}; // 不会重复继承A
      

6. 纯虚函数 & 抽象类

什么时候用?

  • 强制派生类实现接口
    • 例:
      class Shape {
      public:
          virtual void draw() = 0; // 纯虚函数
      };
      class Circle : public Shape {
      public:
          void draw() override { /* 必须实现 */ }
      };
      
  • 抽象类不能实例化,只能被继承

总结:什么时候用什么?

继承方式典型场景示例
public"是一个"关系(is-a)Dog : public Animal
protected仅派生类可访问基类成员工具类内部继承
private“用…实现”(不暴露基类接口)Stack : private LinkedList
多重继承组合多个功能Smartphone : Phone, Camera
虚拟继承解决钻石继承问题D : B, C(B/C虚拟继承A)
纯虚函数强制派生类实现接口ShapeCircle

相关文章:

  • 网站运营单位是什么意思广告联盟赚钱app
  • 德惠市住房城乡建设委官方网站推广渠道有哪些
  • 网络公司网站首页市场调研报告范文3000字
  • 动态网站开发用的什么语言全国疫情突然又严重了
  • 网页设计公司的痛点是什么许昌正规网站优化公司
  • 娱乐城网站模板做网站找哪家好
  • fastGPT—nextjs—mongoose—团队管理之部门相关api接口实现
  • 当系统会“说话“:用人类能听懂的方式聊聊Syslog和Kafka
  • 【MongoDB + 向量搜索引擎】MongoDB Atlas 向量搜索 提供全托管解决方案
  • Docker自动部署Spring Boot项目的Shell脚本
  • Caddy 从入门到实战指南(一)
  • 鸿蒙NEXT小游戏开发:井字棋
  • Java学习总结-io流-字节流
  • 基于51单片机的模拟条形码识别系统proteus仿真
  • GitLab CVE-2025-2255 漏洞解决方案
  • 【通知】STM32MP157驱动开发课程全新升级!零基础入门嵌入式Linux驱动,掌握底层开发核心技能!
  • Linux信号——信号的保存(2)
  • HTML5 Video(视频)学习笔记
  • AVR128单片机红外遥控8*8LED点阵屏显示
  • 【python中级】使用 setuptools生成 whl 轮子文件
  • Postman接口测试
  • Python 设计模式:迭代模式
  • Unity 常见报错 定位和查找方法
  • 如何利用ATECLOUD测试平台的芯片测试解决方案实现4644芯片的测试?
  • 【Azure】如何使用 Docker CLI 和 Compose 将容器部署到 Azure ACI
  • 2.1 路径问题专题:LeetCode 62. 不同路径