Как-то мои глобальные объекты создаются без их соответствующих конструкторов называют:Глобальный конструктор объекта не вызывалось
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
Я использовал конструктор, как это в разные проекты раньше и никогда не сталкивались с такими проблемами. Я пробовал безпараметрический конструктор и делал тестовую переменную статичной, и не имел никакого другого эффекта. Может ли кто-нибудь просветить меня о том, что здесь происходит?
Я использую визуальную студию 2010, в случае, если это имеет значение.
В случае, если кто-то заинтересован, [на ideone] (http://ideone.com/3pnvDc), он работает отлично. – Dukeling
Ваш код дает мне правильный результат. –
Это ваш точный код? В частности, это глобальный тест TestClass и 'int num' в том же файле? –