简单的说,被virtual关键字修饰的成员函数就是虚函数
我们只需要把基类的成员函数用virtual修饰,其派生类的相应的函数也会自动变为虚函数
派生类可以定义基类中的同名函数,派生类的成员将隐藏基类中的同名成员,造成同名覆盖
虚函数的作用就是实现多态性,多态性是将接口与实现进行分离
指向基类的指针在操作它的多态对象时,会根据不同的类对象,来调用相应的函数,这个函数就是虚函数
虚析构函数:
- 将基类的析构函数定义为虚函数后,当利用delete删除一个指向派生类定义的对象指针或引用时,系统会调用相应的类的析构函数,而不将析构函数定义为虚函数时,只调用基类的析构函数
构造函数不能成为虚函数
- 在构造函数执行结束后,虚函数表指针才会被正确初始化