不知何故,我的全局对象是在没有调用它们各自的构造函数的情况下创建的:
static int num = 0;
class TestClass
{
public:
int a;
float b;
TestClass(float f)
{
a = 55;
b = f;
++num;
}
};
TestClass test(32);
int main(int argc,char *argv[])
{
std::cout<<"Int: "<<test.a<<std::endl;
std::cout<<"Float: "<<test.b<<std::endl;
std::cout<<"Constructor has been called "<<num<<" times"<<std::endl;
while(true);
return 0;
}
输出是:
Int: 0
Float: 0
Constructor has been called 0 times
我以前在不同的项目中使用过这样的构造函数,从来没有遇到过这样的问题。我尝试了一个无参数的构造函数并将测试变量设为静态,但都没有任何不同的效果。谁能告诉我这里发生了什么?
我正在使用 Visual Studio 2010,以防万一。