所以我有以下代码:
#include<iostream>
using namespace std;
class baseClass
{
public:
int objID;
/*baseClass()
{}
*/
};
int main(int argc, char** argv)
{
baseClass bcObj;
cout << "bcObj.objID: " << bcObj.objID << endl;
return 0;
}
现在,如果我尝试运行它,我会收到关于使用未初始化变量的运行时错误。但是如果我添加一个默认构造函数(取消注释构造函数),它工作正常。它仍然打印出垃圾值,但打印时没有运行时错误。
为什么会有这种差异?默认构造函数不对 objID 做任何事情。我正在使用 Visual Studio 2013(禁用语言扩展)。
谢谢你。