虚函数的认识:方便自己查阅
虚函数是个好东西,是C++中面向对象的“多态”特性就是由此实现的,给我们带来了很多的便利。
但是虚函数不是万能的,不能滥用否则就失去它真正的意义了。
虚函数不适用的三种情况:
1、有时候虚函数会带来很大消耗,降低程序性能。虚函数的调用会带来额外的开销。
对象直接调用函数、对象指针调用函数、对象指针调用虚函数所对应的开销都不一样。分别带来哪些开销?
2、当我们用不到“多态”特性的时候,就没有必要函数声明为虚函数了。
3、当然,虚函数要在类可派生的情况下才能发挥其应有的作用。所以,如果一个类不考虑派生情况,就无需使用虚函数。
虚函数必须使用的情况:
1、当要删除一个指向基类而其实是指向子类对象的指针时。(或者基类对象中有资源分配数据时)就必须使用需析构函数。
后续补充。。。
所以,我们必须根据自己所需的实际情况来使用虚函数,综合考虑而不是滥用。理解到其中最精髓的部分才能发挥其应有的作用。