上C++课的时候记得老师说虚函数的限制有以下四点:
(1)只有成员函数才能声明为虚函数,因为虚函数仅适用于有继承关系的类对象,所以普通函数不能声明为虚函数;
(2)虚函数必须是非静态成员函数,因为静态成员函数不受限与某个对象;
(3)内联函数不能声明为虚函数,因为内联函数不能再运行中动态确定其位置;
(4)构造函数不能声明为虚函数,多态是指不同对象对同一消息有不同的行为特征,虚函数作为运行过程中多态的基础,主要是针对对象的,而构造函数是在对象产生之前运行的,因此,虚构造函数是没有意义的。