6
甚至在main()执行之前是否可以实例化一个类的对象?如果是的话,我该怎么做?在main()执行之前实例化一个类的对象
甚至在main()执行之前是否可以实例化一个类的对象?如果是的话,我该怎么做?在main()执行之前实例化一个类的对象
在调用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";
}
是的,你可以做到这一点,像这样:
#include <iostream>
struct X {
X() { std::cout << "X()\n"; }
};
X x;
int main(int argc, char ** argv) {
std::cout << "main()\n";
}
这是如何工作的?不执行从main()开始?你能抛出一些光吗? – Shree 2010-10-22 10:17:23
@Shree:查看编辑。工作代码[here](http://ideone.com/mKEB9) – 2010-10-22 10:18:29
@Shree:不需要在'main()'之前创建全局变量(以及其他一些变量),因为它们必须在' main()'开始。所以他们的构造函数必须在'main()'之前调用。 – sbi 2010-10-22 10:21:55