1. 普通类的静态成员初始化
class testStatic {
public:
testStatic() {}
~testStatic() {}
struct myStruct {
myStruct(int v=9) {
cout << "myStruct()";
mVal = v;
}
int mVal=0;
};
static myStruct mStru;
};
//typename testStatic::myStruct testStatic::mStru; //--mark1
//testStatic::myStruct testStatic::mStru=1; //--mark2
testStatic::myStruct testStatic::mStru; //--mark3
int main() {
}
如上,在class testStatic类中有静态成员static myStruct mStru, 当加上mark1,2,3标记的任何一种时(在类外初始化类的静态成员变量,mark1待探索), 该静态成员会在main函数执行之前被调用!
当不加mark1,2,3标记的任何一行时,该静态成员不会被构造!
2. 模板类的静态成员
template<typename T>
class testStatic {
public:
testStatic() {}
~testStatic() {}
struct myStruct {
myStruct() {
cout << "myStruct was constructed ,";
stri