在 C++ 中,被 virtual 修饰的函数在基类中声明为虚函数,但在子类中并不是必须要实现的。具体来说:
-
虚函数的基本概念
当一个函数在基类中被声明为 virtual 时,它表示这个函数可以在派生类中被重写(override)。
虚函数机制使得 C++ 支持多态性,允许在基类指针或引用指向派生类对象时,可以调用派生类中重写的函数。 -
是否必须实现
如果基类中的虚函数是纯虚函数(使用 = 0 进行声明),那么所有的派生类必须实现该函数,否则派生类会成为抽象类,无法实例化。
如果基类中的虚函数只是普通的虚函数,那么派生类可以选择重写该函数,但并不是强制的。如果派生类不重写该函数,那么会使用基类中的实现。
总结
被 virtual 修饰的函数在派生类中并不是强制实现的,除非它是一个纯虚函数。
如果派生类不重写虚函数,则会使用基类中的实现。