假设 init
是在 main()
之前初始化的最后一个全局对象(我们不需要任何命令行参数) ,我可以做类似的事情吗:
struct int_main {
int_main ()
{
//... start code execution
}
}init;
int main ()
{
}
以这种方式问这个问题,因为我很想知道 main()
是否保证除了:
- argc, argv 来自命令行
- 所有全局对象都已初始化 在它之前
最佳答案
您不能保证所有 全局对象都在您的对象之前构造,因此您可能不会使用它们中的任何一个。这包括 iostream 的重要部分。
我通常使用 main()
构造应用程序对象并调用其上的方法来执行实际工作的模式。
关于c++ - 我可以将 main() 中的代码替换为全局对象的构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6619796/