1
我对着下面计划工作在调试版本罚款,但在发行失败建设
#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
}
一个
伪代码给出在Visual Studio中的发布版本的问题,从目前在LIB B来源/ B/INC /了Bh
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也是有效的。任何想法为什么这发生在发布版本?
你可以给真正的代码,而不是pseaudo码? – stijn 2010-08-27 07:10:52
在VC++上调试版本构建http://msdn.microsoft.com/en-us/library/fsk896zz.aspx – DumbCoder 2010-08-27 07:15:08
当你说“失败”时,这意味着什么? (除此之外,基里尔和我已经花了很多努力来设置你的问题的格式,请看看我们已经完成并从中学到了什么。) – sbi 2010-08-27 07:31:17