在VS2008中调试BUG

作者:小菜 更新时间:2025-02-25 点击数:
简介:杯具......一共有三个文件AAA.h #ifndef AAA#define AAA#include using namespace std;class Ba

【菜科解读】

杯具......一共有三个文件AAA.h #ifndef AAA#define AAA#include using namespace std;class Base{ public: int m_Value; public: Base( int v = 11 );};#endifAAA.cpp#include "AAA.h"Base::Base( int v ){ m_Value = v;}main.cpp #include "AAA.h" int main( ){ Base* base = new Base; printf( "%d\n", base->m_Value ); int a; cin>>a; return 0;}/////////////////////////////////////////////////////////////////////////////////////////////////////////以下编译均为Debug模式!第一次编译:正常显示结果为:11修改头文件 AAA.h 把 Base( int v = 11 ); 改为 Base( int v = 22 ); 第二次编译:不正常显示结果为:11查看文件“生成”截图:显然,在Debug模式下,main.cpp被跳过了。

在main.cpp文件内我们定义的类对象,因为没有被重新编译,所以该对象仍然持有的是上一次成功编译前的值。

显示结果为 11 也不足为怪了。

/////////////////////////////////////////////////////////////////////////////////////////////////////////以下为Release模式!第三次编译:等待生成Release版本的执行文件。

显示结果和预期的一样,值为 22修改头文件 AAA.h 把 Base( int v = 22 ); 改为 Base( int v = 33 ); 第四次编译:正常显示结果为:33查看文件“生成”截图:显示,Release的编译模式和Debug完全不同,无论文件有没有改动,在Release模式下,所有文件都会被重新编译一次。

/////////////////////////////////////////////////////////////////////////////////////////////////////////测试环境:vs2008 Windows7 32bit 在,VS2008,中,调试,BUG,杯具,......,一,

加入收藏
               

在VS2008中调试BUG

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录