问个关于标准的有关问题

问个关于标准的问题
C++通过初始化类可以在主函数开始之前运行函数

#include <stdio.h>

void P(){printf("a\n");}
class A{ public:  A(){P();} };
A a;
//P(); 错误

int main()
{printf("main");}

为什么不干脆允许在函数体外直接执行函数呢?
------解决方案--------------------
就你的代码,也不能在main以前执行。

得在main中定义一个A对象,调用构造函数才能执行。
------解决方案--------------------
因为当初就这么规定来着了,多简单的答案啊。

------解决方案--------------------
引用:
Quote: 引用:

就你的代码,也不能在main以前执行。

得在main中定义一个A对象,调用构造函数才能执行。


我实测是可以的啊  输出了a的

哦,看到了,因为你定义了A a;嘛。当然调用构造函数了。
------解决方案--------------------
全局变量在main之前被初始化。

你在main外面写代码,那算什么。