gpt4 book ai didi

c++ - 程序在 Debug 构建中运行良好,但在 Release 构建中失败

转载 作者:太空宇宙 更新时间:2023-11-04 14:26:28 28 4
gpt4 key购买 nike

我在 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的this指针值为0x0000000,__vfptr无效。

但是在 main() 中,对象 a 是有效的,__vfptr 也是有效的。知道为什么这会发生在发布版本中吗?

最佳答案

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

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

关于c++ - 程序在 Debug 构建中运行良好,但在 Release 构建中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3582045/

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