程序在Debug构建中工作正常,但在Release构建中失败

时间:2010-08-27 07:06:39

标签: c++ visual-studio-2008

我在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也有效。知道为什么会在发布版本中发生这种情况吗?

1 个答案:

答案 0 :(得分:0)

查看调试和发布版本之间的一些差异以及我发现错误的提示:

Common reasons for bugs in release version not present in debug mode