C++纯虚函数

纯虚函数定义与特征

  1. 语法格式
    virtual 返回值 函数名(参数列表) = 0;
    ● 开头必须加 virtual,末尾赋值 =0,没有函数实现体
  2. 包含至少一个纯虚函数的类 = 抽象类
  3. 抽象类内部可以同时存在普通成员变量、普通成员函数、虚函数、纯虚函数,不只能写纯虚函数

抽象类核心特征

  1. 禁止实例化:不能直接 抽象类 变量; 或者 new 抽象类 创建对象
  2. 强制约束子类:所有继承抽象类的子类,必须重写全部纯虚函数;如果子类不全实现,子类也会变成抽象类,同样不能创建对象
  3. 作用:定义统一接口规范,统一约束所有子类的行为

抽象类意义与价值

  1. 规范约束:给所有子类定下必须实现的功能接口,保证子类行为格式统一
  2. 统一多态管理:可以用抽象类指针 / 引用接收任意子类对象,编写一套通用代码操作全部子类
  3. 扩展性强:新增子类时,只要实现纯虚接口,原有通用代码完全不用修改

案例

1:银行利率业务

抽象父类(银行基类)

运行结果:

各大银行存款利率查询

当前年利率:1.95%

当前年利率:2.1%

2:批量统一遍历统计(统一管理子类)

无抽象类的弊端

如果不用抽象类 + 纯虚函数,工行、建行是两个完全无关的类,无法用同一个指针数组存放,必须分开写两套打印逻辑,代码冗余、难维护

速记总结

  1. 纯虚函数:virtual fun() = 0; 无实现体
  2. 含纯虚函数 → 抽象类,不能造对象
  3. 子类必须重写全部纯虚函数,否则子类也是抽象类
  4. 核心用途:定接口规范 + 多态统一批量管理多个子类
相关推荐
Herbert_hwt2 分钟前
【C语言基础】常量、选择结构与运算符全解析
c语言·开发语言·算法
buhuizhiyuci7 分钟前
【Linux 篇】数字世界的水流蓄水池 —— IO 缓冲区机制深度实战解析
linux·运维·服务器·c++
AI视觉网奇19 分钟前
动作识别 视频理解大模型
开发语言·python·音视频
啦啦啦啦啦zzzz38 分钟前
moduo网络库 Acceptor TcpConnection
服务器·网络·c++·reactor·网络库
键盘会跳舞40 分钟前
C++:右值引用与移动语义源码级深度拆解——现代C++性能优化的语言基石
c++·右值引用·移动语义
SomeB1oody1 小时前
【RustyML入门】3.8. 正则化与归一化层
开发语言·后端·机器学习·rust·教程
__zRainy__1 小时前
Node系列 · Node基础:全局变量与全局对象
开发语言·前端·javascript
码匠许师傅1 小时前
【C++ 面试真题】聊聊 C++ 的虚函数和多态
java·c++·面试
鬼手点金1 小时前
Scrapy + Playwright 完整示例(JS 动态渲染网页)
开发语言·javascript·爬虫·python·scrapy·html·json
Mr. zhihao1 小时前
深度解析:为什么Java序列化需要搭配ByteArrayOutputStream?IO装饰器模式的精妙设计
java·开发语言·装饰器模式