静态数据成员只能在类外初始化,
数据类型 类名::静态数据成员名=初值;
不能用成员函数进行初始化.
其实,一个类中,静态数据成员是这个类定义的变量公用的,
也就是说,比如,你这个类,定义了十个变量,他们的静态数据成员的值,在这十个变量里始终是一致的.
(与c#的静态数据成员意义一致,只是初始化方式不同)
class human
{
public:
human(){ human_num++;}; //默认构造函数
static int human_num; //静态成员
~human()
{
human_num--;
print();
}
void print() //
{
cout<<"human num is: "<<human_num<<endl;
}
protected:
private:
};
int human::human_num = 0; //类中静态数据成员在外部定义,仅定义一次