C++ 虚函数与多态

语法上,在成员函数前加上virtual 关键字,就成了虚函数

非虚函数:不希望子类重新定义(覆写override)父类的函数

虚函数:希望派生类覆写父类,且父类已经对该函数有定义

纯虚函数:希望子类一定要覆写父类该函数,父类中没有定义该函数(只是声明)

Template Method(设计模式-模板模式)

定义一个操作中算法的骨架,而将一些操作延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构,即可重定义该算法的某些特定步骤。(GOF: 《设计模式》)

父类CDocument中的OnFileOpen函数会调用Serialize(),而Serialize(),在父类中是虚函数,具体实现根据子类CMyDoc中覆写的Serialize()实现。

相关推荐
不吃土豆的马铃薯2 分钟前
4.SGI STL 二级空间配置器 allocate 与_S_refill 源码解析
c语言·开发语言·c++·dreamweaver·内存池
码界筑梦坊26 分钟前
120-基于Python的食品营养特征数据可视化分析系统
开发语言·python·信息可视化·数据分析·毕业设计·echarts·fastapi
lsx20240638 分钟前
《Foundation 模态框》
开发语言
fufu03111 小时前
vscode配置C/C++环境,用GDB调试简单程序分享
开发语言·c++
快乐江湖1 小时前
「层层包装」—— 装饰器模式
开发语言·python·装饰器模式
java1234_小锋1 小时前
String、StringBuilder、StringBuffer的区别?
java·开发语言
星原望野1 小时前
JAVA集合:List、Set和Map
java·开发语言·list·set·map·集合
摘星小杨2 小时前
如何在前端循环调取接口,实时查询数据
开发语言·前端·javascript
yujunl2 小时前
U9的UI插件客开的总结1
开发语言
多敲代码防脱发2 小时前
Spring进阶(容器实现)
java·开发语言·后端·spring