C++定义虚函数要遵循的规则
1.只有成员函数才能声明虚函数,因为虚函数仅适用于有继承关系的类对象,所以普通函数和友元函数都不能声明虚函数
2.虚函数的声明只能出现在类声明中的函数原型声明中,而不能出现在成员函数的函数体上。
3.通过定义虚函数来使用C++语言提供的多态性机制时,派生类应该是从基类公有派生的。
4.类的静态成员函数不可以定义为虚函数,因为静态成员函数不受限于某个对象。
5.类的构造函数不可以定义为虚函数,多态是指不同对象对同一消息有不同的行为特性,虚函数作为运行过程中的多态的基础主要针对对象的,而构造函数是在对象产生之前运行的,因而虚构造函数是没有意义的
6.析构函数可以定义为虚函数,而且通常被声明为虚函数
7.内联函数不能声明为虚函数,因为内联函数不能在运行中动态确定其所在位置。