虚函数
虚函数的种类:
非虚函数(non-virtual function)——普通函数
不希望继承自其的子类对该函数覆写(override)
语法:<返回值><函数名>(参数表){函数体}
虚函数(virtual function)
希望继承自其的子类中对该函数覆写(override),但如果不重新定义,也可以使用父类中的定义。
语法: virtual <返回值><函数名>(参数表){函数体}
纯虚函数(pure virtual function)
希望同时也必须要在继承自其的子类中重新定义该函数,因为父类中只相当于一个接口模板,并没有对其定义,如果子类中不重写会编译出错。(常用作定义多人合作项目的功能接口,)
语法:virtual <返回值><函数名>(参数表)=0;
Template Method(一种使用虚函数的设计模式)
定义:
在父类的某函数执行过程中,把某一关键点延缓到子类中实现。把用这种方式设计类(中函数)的做法叫做Template Method
关键技术:
Template Method 实现的关键技术在于:类成员函数都有一个隐藏的this指针作为参数。
多态
继承要搭配虚函数使用才足够强大