默认实现,子类(如 CRenderDevice_Renderware)
这是基类的默认实现,子类(如 CRenderDevice_Renderware)会在它的 OnCreate 中 先调用基类的 OnCreate,再做自己的渲染 API 初始化。 调用子类的OnCreate 一定会调用父类的OnCreate 吗?
不会 自动 调用。
在 C++ 里,虚函数的覆盖不会自动把父类的实现也调用一遍。
也就是说,当你在子类里写:
父类 CRenderDevice::OnCreate 并不会被执行。
如果子类希望复用父类的逻辑,就必须 显式调用基类的版本:
这种模式的好处就是:
-
基类封装了“所有渲染设备都需要的通用设置”。
-
子类只管做自己专属的初始化逻辑。
-
子类可选择是否调用父类版本(大多数情况下需要调用)。
所以回答你的问题:
👉 调用子类的 OnCreate 不会自动调用父类的 OnCreate,必须在子类实现里手动写 CRenderDevice::OnCreate(...) 才会调用到。
浙公网安备 33010602011771号