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. 核心用途:定接口规范 + 多态统一批量管理多个子类
相关推荐
巧克力男孩dd5 分钟前
Python超典型练习题(第一次作业)
开发语言·python·算法
TlSfoward12 分钟前
TLSFOWARD TLS指纹
开发语言·数据库·爬虫·搜索引擎·https·php
闲猫1 小时前
LangChain / Core components / Models
开发语言·python·langchain
ComputerInBook1 小时前
c 和 c++ 中的宏块(macro)
c语言·c++··宏块·宏指令
AA陈超2 小时前
004 T02 - 俯视角摄像机系统 设计文档
网络·c++·ue5·虚幻引擎
-银雾鸢尾-2 小时前
C#中的索引器
开发语言·c#
bu_shuo2 小时前
c与cpp中的argc和argv
c语言·c++·算法
蓝创精英团队2 小时前
VCPKG 跨平台C++ 库管理器
c++·vcpkg
Qlittleboy3 小时前
PHP的接口参数传递的过多,max_input_vars = 5000
开发语言·php
Aurorar0rua3 小时前
CS50 x 2024 Notes Algorithms - 02
c语言·开发语言·学习方法