如下代码:
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;不行?
编译器报错说当前范围内的定义或者声明非法,想问下原因是什么?
如下代码:
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;不行?
编译器报错说当前范围内的定义或者声明非法,想问下原因是什么?
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.3k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答513 阅读✓ 已解决
原因:定义在main( )函数之前的全局对象、静态对象的构造函数在main( )函数之前执行。
例子解析:http://blog.csdn.net/qq125293...