虚函数是应在派生类中重新定义的成员函数。 当使用指针或对基类的引用来引用派生的类对象时,可以为该对象调用虚函数并执行该函数的派生类版本。
假定基类包含声明为 virtual 的函数,并且派生类定义了相同的函数。 为派生类的对象调用派生类中的函数,即使它是使用指针或对基类的引用来调用的。
由于编写代码的时候并不能确定被调用的是基类的函数还是哪个派生类的函数,所以被成为“虚”函数。
虚函数只能借助指针或引用来达到多态的效果。
virtual修饰符会被隐形继承的。
C++中哪些函数不能被声明为虚函数
(1)虚函数用于基类和派生类,普通函数所以不能
(2)构造函数不能是因为虚函数采用的是虚调用的方法,
(3)内联成员函数的实质是在调用的地方直接将代码扩展开
(4)继承时,静态成员函数不能被继承的,它只属于一个类,因为也不存在动态联编
(5)友元函数不是类的成员函数,因此也不能被继承