21xrx.com
2024-09-19 09:55:28 Thursday
登录
文章检索 我的文章 写文章
没有实现虚函数的子类会发生什么?-C++虚函数
2023-06-26 15:55:00 深夜i     --     --
虚函数 子类 实现 继承 编译错误

C++中的虚函数是一种非常重要的特性,它可以让子类重写父类的方法,并且能够保证程序的正确性和可靠性。但是,如果一个子类没有实现其继承自父类的虚函数,则会发生什么呢?

首先,需要了解的是,如果一个子类没有实现其继承自父类的虚函数,那么当该子类的实例调用该函数时,程序会调用父类的虚函数。这种情况下,即使子类重写了该虚函数,也不会被调用。这是因为在没有实现该函数的情况下,该函数在子类的作用域内是不存在的。

其次,如果一个子类没有实现其继承自父类的纯虚函数,则会被视为一个抽象类,即不能被直接实例化的类。这种情况下,如果要使该子类能够被实例化,必须在子类中实现该纯虚函数。

最后,需要注意的是,如果一个子类没有实现其继承自父类的虚函数,并且该函数又不是纯虚函数,则程序在编译时不会报错,只有在运行时才会出现错误。因此,在编写 C++程序时,应该尽量避免这种情况的发生,以提高程序的稳定性和可靠性。

综上所述,如果一个子类没有实现其继承自父类的虚函数,程序会调用父类的虚函数,而不是子类的重写函数。此外,如果该函数是纯虚函数,该子类会被视为抽象类。因此,程序员在编写 C++程序时应该尽可能避免这种情况的发生,以确保程序的正确性和可靠性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复