类的静态数据成员何时初始化??
class A{
public:
A(){cout << "A() "<<endl;};
};
class B{
public:
B(){cout << "B() "<<endl;};
private:
staticA a;
};
void main ()
{
B b;
}
输出: B()
为什么没有调用A的构造函数啊??
[解决办法]
同意2楼的yydrewdrew :
- C/C++ code
#include <iostream>using namespace std;class A{public:A(){cout<<"A()" <<endl;};};class B{public:B(){cout<<"B()"<<endl;};private:static A a;//here is just declaration};A B::a;//here is definition!!!so A's constructor is invoked hereint main(){ B b;}