-
若有需要,必须在基类中声明虚函数。(为了可读性也应在派生类中相同函数声明)
-
考虑虚函数的条件:
若基类中的成员函数需要在派生类中作改动(注意不是重载或重定义,参数类型不能变!!),则考虑在基类中声明为虚函数;
若不改动则尽量不要虚函数。 -
一些限制:
只有类成员函数才能声明为虚函数。
构造函数不能为虚函数,析构函数尽量声明为虚函数。 -
指针和引用:
基类指针或引用可以指向/引向派生类,但不能访问派生类新成员函数,只能访问继承部分的旧函数和改动过的虚函数。 -
虚函数只能借助于指针或者引用来达到多态的效果。
附上虚函数列表图解: