2010-10-22 41 views

回答

7

在调用main()之前创建全局对象。

struct ABC { 

    ABC() { 
     std::cout << "In the constructor\n"; 
    } 
}; 

ABC s; // calls the constructor 

int main() 
{ 

    std::cout << "I am in main now\n"; 
} 
+0

这是如何工作的?不执行从main()开始?你能抛出一些光吗? – Shree 2010-10-22 10:17:23

+0

@Shree:查看编辑。工作代码[here](http://ideone.com/mKEB9) – 2010-10-22 10:18:29

+3

@Shree:不需要在'main()'之前创建全局变量(以及其他一些变量),因为它们必须在' main()'开始。所以他们的构造函数必须在'main()'之前调用。 – sbi 2010-10-22 10:21:55

5

是的,你可以做到这一点,像这样:

#include <iostream> 

struct X { 
    X() { std::cout << "X()\n"; } 
}; 

X x; 

int main(int argc, char ** argv) { 
    std::cout << "main()\n"; 
} 
相关问题