C++中类中类的静态变量初始化

关于C++中类中类的静态变量,或者说类中结构体中的静态变量的初始化问题,解释如下:

1.首先,定义在结构体或者类中的变量,在头文件中定义时仅仅是一个声明,并未分配空间,只有在静态变量被初始化之后才分配空间,因此千万不要再头文件中初始化静态变量,容易被其他文件引用,造成空间浪费

2.类或结构的静态变量初始化必须在外部,这个外部是哪里呢?

C++中类中类的静态变量初始化

 上面这是test.h,这里定义了静态变量x,那么我们在哪里初始化呢?

C++中类中类的静态变量初始化

这是test.app文件,显然我们在Test构造函数外面初始化了X,那么这里的y又是怎么回事呢?

回到test.h

C++中类中类的静态变量初始化

看到没,类中类,结果其中的静态变量也是需要在最外面的类定义之外进行初始化,最后编译是通过的。