继承的虚函数需要写在派生类中吗
时间: 2024-04-07 18:28:33 浏览: 34
不是必须的。派生类可以继承基类的虚函数,也可以在派生类中重新定义虚函数。如果派生类中重新定义虚函数,那么派生类中的该函数将覆盖基类中的虚函数,即派生类对象调用该函数时将会调用派生类中的实现。
如果派生类中没有重新定义虚函数,那么派生类将继承基类中的虚函数,而且可以直接使用基类中的实现。在这种情况下,派生类可以不必再次定义虚函数,因为它已经被继承到派生类中了。
相关问题
虚函数在类的继承层次中的作用
在类的继承层次结构中,派生类可能重新定义了与基类同名的函数,但参数个数和类型不同的情况下,编译系统按照同名覆盖的原则决定调用的对象。C++中的虚函数就是用来解决这个问题的。虚函数的作用是允许在派生类中重新定义与基类同名的函数,实现在派生类中对基类函数的覆盖,确保调用的是派生类中的函数而非基类中的函数。这样就可以在派生类中定义与基类同名、同参数列表、不同实现的函数,实现了多态性。[^1]
因此,虚函数在类的继承层次中可以确保程序在调用同名函数时能够正确地调用到派生类的函数,而不是基类的函数。
假设说基类中有一个public的虚函数,在其派生类中可以调用吗
是的,派生类可以调用基类中的public虚函数。派生类可以继承基类中的所有成员,包括public虚函数。在派生类中,可以通过使用基类名限定符来调用基类的public虚函数。例如,假设基类名为Base,public虚函数名为func,则在派生类中可以使用`Base::func()`来调用基类的public虚函数。另外,如果在派生类中重新实现了基类中的虚函数,则可以通过使用关键字`override`来显式地指明这是对基类虚函数的重写。