如果不定义虚函数子类直接引用父类的成员函数有什么问题成员函数
时间: 2024-03-30 22:38:14 浏览: 131
C++子类父类成员函数的覆盖和隐藏实例详解
如果不定义虚函数,子类直接引用父类的成员函数时,将会发生静态绑定,即编译器在编译时就决定了要调用的函数是哪一个,而不是在运行时动态地根据对象类型来判断调用哪一个函数。
这意味着,如果子类重写了父类的成员函数,但没有定义为虚函数,那么当基类指针或引用指向派生类对象时,调用的仍然是基类中的函数,而不是派生类中的函数。这将导致无法实现多态性,也就无法充分发挥面向对象编程的优势。
因此,如果想要实现运行时多态性,必须将基类中需要重写的成员函数定义为虚函数。这样,当基类指针或引用指向派生类对象时,就可以根据对象的实际类型来调用对应的派生类函数,实现多态性。
阅读全文