【C++】C++学习笔记之十二:虚函数与多态

虚函数

虚函数的种类:

非虚函数(non-virtual function)——普通函数

不希望继承自其的子类对该函数覆写(override)
语法:<返回值><函数名>(参数表){函数体}

虚函数(virtual function)

希望继承自其的子类中对该函数覆写(override),但如果不重新定义,也可以使用父类中的定义。
语法: virtual <返回值><函数名>(参数表){函数体}

纯虚函数(pure virtual function)

希望同时也必须要在继承自其的子类中重新定义该函数,因为父类中只相当于一个接口模板,并没有对其定义,如果子类中不重写会编译出错。(常用作定义多人合作项目的功能接口,)
语法:virtual <返回值><函数名>(参数表)=0;

Template Method(一种使用虚函数的设计模式)

定义:

在父类的某函数执行过程中,把某一关键点延缓到子类中实现。把用这种方式设计类(中函数)的做法叫做Template Method

关键技术:

Template Method 实现的关键技术在于:类成员函数都有一个隐藏的this指针作为参数。

多态

继承要搭配虚函数使用才足够强大

组合(composition)+ 继承(Inheritance)

委托(Delegation)+ 继承(Inheritance)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容