【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)

你可能感兴趣的:(【C++】C++学习笔记之十二:虚函数与多态)