例子,比如我们有一个People类,其中包含一个private的静态成员变量num
class People{
private:
static int num;
public:
void show(){
cout<<num<<"\n";
}
}
静态成员变量是整个类所共有的,无法通过构造函数对之初始化,我们需要在类外对其进行定义和初始化。
int People::num=0;
即使num是private的,我们也可以这么写。
扩展一下:C++11已经支持在类声明时对非静态成员变量或静态成员常量进行初始化。以下初始化都是合法的:
class People{
int num=0;
}
class People{
const static int num=0;
}