静态成员变量
- 一个类只有一个
- 存储在数据段
- 静态成员变量只能在类外的.cpp进行初始化,且只能初始化一次
- 静态成员变量的访问可以不依赖于对象(不依赖this指针),使用类的作用域可以直接访问
class Person
{
private:
int _age;
int _sex;
char* _name;
public:
static int num; //静态成员变量
Person()
{
num++; //统计人数
cout << "Person()" << endl;
}
Person(int age)
{
num++;
cout << "Person(int age)" << endl;
_age = age;
_name = NULL;
}
Person(const char* name, int age, int sex)
{
num++;
_age = age;
_sex = sex;
_name = new char[strlen(name) + 1];
memset(_name, 0, strlen(name) + 1);
for (int i = 0; i < strlen(name); i++)
{
_name[i] = name[i];
}
}
~Person()
{
num--;
delete[]_name;
}
};
int Person:: num = 0;//在类外初始化
int main()
{
Person p1;
cout << p1.num << endl; //可以通过对象访问
cout &l