gpt4 book ai didi

c++ - 具有空体的虚方法与纯虚方法有什么区别?

转载 作者:搜寻专家 更新时间:2023-10-31 00:56:53 25 4
gpt4 key购买 nike

我最近在看一个游戏的源代码。该设计声明了一个“抽象”场景类,其他类型的场景(例如 MenuScene 的 PlayScene)从中继承。 Scene 类在 header 中声明,其所有方法都是虚拟的。然而,在检查这个类的源代码时,所有这些方法都是作为空体实现的。这只是糟糕的代码还是有一些原因导致人们不将这些方法声明为纯虚拟的?

最佳答案

纯虚方法会使您的类“抽象”,因此您将无法实例化它。一个空的虚拟方法将允许您的类被实例化。

Is this just bad code or is there some reason why one would not declare these methods as pure virtual?

不知道,这听起来像是糟糕的代码。除非您希望基类在继承自时提供“空”方法,否则当这些方法旨在作为行为扩展时,这并不是一种不寻常的做法。

换句话说,如果您的语义是“扩展此类并仅重载您实际需要的功能”,那么它完全没问题。当这些方法被视为钩子(Hook)并在特定时刻被框架调用时,通常会使用这种方法。

关于c++ - 具有空体的虚方法与纯虚方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38528888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com