gpt4 book ai didi

c++ - 如果调用在头文件中声明为虚拟但未定义的事件会发生什么

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:03 25 4
gpt4 key购买 nike

我是 C++ 新手,正在尝试理解 this 中的一行代码:

current->Loop(g_game.time_step);

-- 其中 current 是指向 State 类型对象的指针。

header循环函数声明为虚拟状态的文件:

virtual void Loop(double time_step) {}

但是在States.Cpp文件头函数未定义。

如果调用已声明但未定义的函数,会发生什么情况?该代码来自一个有效的开源游戏。该行执行没有错误。

最佳答案

您的函数定义; {} 是(空)函数体。

virtual 只是意味着子类可以用虚拟分派(dispatch)覆盖它,而不是它们必须。要强制他们这样做,您可以通过编写 = 0; 而不是 {} 使其成为“纯”虚函数:

virtual void Loop(double time_step) = 0;

(这也会使类“抽象”,这意味着它不能直接实例化。)

关于c++ - 如果调用在头文件中声明为虚拟但未定义的事件会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19124595/

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