1.什么是virtual
virtual是一个C++的修饰符,用于修饰函数,被修饰的函数称为虚函数。
2.为什么需要?
在C++中,我们都知道要实现多态有2种方法,一种是重写,一种是重载,重载是横向的,意思是只发生在同一个类中,根据函数的参数个数,类型不同从而实现重载,而重载则是纵向的,发生在继承中,子类函数覆盖父类函数,父类指针指向子类实体时,应该实现运行时多态。
3.通常用在什么情形?
1.作为基类的类的析构函数
如果一个类做为父类,然后它被别人继承,当用子类指针指向子类时不会出现任何的问题,但是如果用父类指针指向子类时,若没有加析构函数,那只会析构父类的析构函数,这时我们需要用virtual修饰父类的析构函数。
2.需要实现多态的函数
若一个函数需要实现多态,即运行时多态。