基类派生必须要有虚函数吗 
时间: 2023-05-26 21:06:04 浏览: 23
不是所有的基类派生都需要有虚函数。如果你的派生类不需要覆盖基类的函数,那么基类的函数不需要被声明为虚函数。然而,如果你的派生类需要覆盖基类函数,那么基类的函数需要被声明为虚函数,以便创建一个虚函数表,使得运行时动态绑定能够正确工作。如果你不将基类函数声明为虚函数,则使用指向基类对象的指针或引用调用函数的时候,基类的函数将会被调用而不是派生类中的函数。
相关问题
C 基类和派生类的析构函数名称不同为什么能够虚函数重载
在C++中,虚函数是一种允许基类通过指针或引用调用派生类的函数的特殊函数。当使用指针或引用调用一个派生类对象时,如果派生类重新实现了基类的虚函数,那么调用的实际函数将是派生类的函数,而不是基类的函数。
因此,基类和派生类的析构函数名称不同是能够虚函数重载的原因。由于析构函数是一种特殊的虚函数,它允许派生类完全重写基类的实现,以便在对象被销毁时执行特定的操作。如果派生类没有重新实现基类的析构函数,那么将使用基类的析构函数来销毁派生类对象。相反,如果派生类重新实现了基类的析构函数,则使用派生类的析构函数来销毁对象。
因此,即使基类和派生类的析构函数名称不同,仍然可以使用虚函数重载机制来实现多态性并动态地调用正确的函数。
基类和派生类中有相同函数,可以在不使用虚函数的情况下实例化一个派生类对象,通过这个派生类对象来调用基类和派生类的同名函数,那么虚函数的作用是什么呢?
虚函数的作用是实现多态性,即在运行时根据对象的实际类型来调用相应的函数。在没有使用虚函数的情况下,如果通过基类指针或引用来调用派生类的同名函数,那么只会调用基类的函数,而不会调用派生类的函数,这就失去了多态性。
使用虚函数可以实现运行时的动态绑定,使得程序在运行时能够根据对象的实际类型来调用相应的函数,从而实现多态性。当基类的指针或引用指向派生类对象时,通过虚函数表来确定调用哪个函数,从而实现动态绑定。因此,虚函数是实现多态性的基础,是面向对象编程中非常重要的概念。
相关推荐












