我在Visual Studio的发布版本中面临一个问题
伪代码在下面给出
#include "lib/A/inc/A.h"
main()
{
A a;
a.f1();//this fails in release build and works fine in debug build
a.f2();//this fails in release build and works fine in debug build
}
A来源于lib / B / inc / B.h
中存在的B.class A :public B
{
virtual f2();
};
B具有纯虚函数f2()和普通f1()
class B {
private:
string name;
public:
void f1();
virtual void f2() = 0;
};
我介入了f1()函数。此时B的指针值为0x0000000,__ vfptr无效。
但是在main()中,对象a有效且__vfptr也有效。知道为什么会在发布版本中发生这种情况吗?
答案 0 :(得分:0)
查看调试和发布版本之间的一些差异以及我发现错误的提示:
Common reasons for bugs in release version not present in debug mode