gpt4 book ai didi

c++ - VSC++,地址错误的虚拟方法,奇怪的错误

转载 作者:行者123 更新时间:2023-11-30 04:38:41 25 4
gpt4 key购买 nike

这个人:

virtual phTreeClass* GetTreeClass() const { return (phTreeClass*)m_entity_class; }

调用时,程序因访问冲突而崩溃,即使在完全重新编译之后也是如此。所有成员函数和虚拟成员函数都有正确的内存地址(我在 Debug模式下将鼠标悬停在方法上),但是这个函数有一个错误的内存地址:0xfffffffc。

一切看起来都很好:'this' 指针,在这个函数调用之前一切正常。这个功能也挺老的了,好久没改了。在一些工作后突然出现问题,我将其全部注释掉以查看发生了什么,但没有任何成功。

所以我删除了虚拟,编译,它工作正常。我添加虚拟,编译,它仍然可以正常工作!我基本上什么都没改变,记得我之前做了一个完整的重新编译,但当时仍然有错误。

我无法重现该问题。但现在它回来了。我没有改变任何东西。删除虚拟解决了这个问题。

最佳答案

除非您非常确定自己在做什么,否则永远不要对多态类型使用 C 风格的转换。压倒性的可能性是您将其转换为不是的类型。如果您的指针没有隐式转换(因为它们转换为基类,这是安全的),那么您就错了。

关于c++ - VSC++,地址错误的虚拟方法,奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3038151/

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