gpt4 book ai didi

c++ - 将对象指针作为指向基类的指针传递

转载 作者:行者123 更新时间:2023-11-28 01:01:25 27 4
gpt4 key购买 nike

这段代码合法吗?

它崩溃了,我不确定是因为我的编程环境(它是嵌入式设备)还是因为我编写了狡猾的代码。

int foo(NGKGame * game) {
game->init(); //Crashes here
return 0;
}

int main() {
NGKGame * game = new PlaneGame();
game->init(); //This call is okay
foo(game);

return 0;
}

NGKGame 是基类。 PlaneGameNGKGame 的派生类。 init()是基类中的纯虚函数,但在PlaneGame中实现。

谢谢,

编辑:

被调用两次的 init 函数只是作为示例的一部分。在我当前的实现中,它是空的。

最佳答案

它可能会崩溃,因为您在同一个对象上调用了两次 init()。由于您没有向我们展示 init() 的源代码,我无法推测它为什么会崩溃,但似乎名为 init 的函数应该只是调用一次。

如果你想要更好的答案,请看http://sscce.org/

关于c++ - 将对象指针作为指向基类的指针传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8484451/

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