main函数内定义某类的静态成员出错原因?

如下代码:

class A {
public:
    static int a;
};
//int A::a = 11;
int main(  )
{
    int A::a = 11;
    cout << A::a << endl;
}

类内部的静态成员必须在类外部重新定义,初始化,为什么在main函数内我们定义int A::a = 11;不行?
编译器报错说当前范围内的定义或者声明非法,想问下原因是什么?

阅读 4k
1 个回答

原因:定义在main( )函数之前的全局对象、静态对象的构造函数在main( )函数之前执行。
例子解析:http://blog.csdn.net/qq125293...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题