一.类的静态数据成员
1 在Human.h文件
class Human{
public :
Human();
~Human();
private:
int age;
int salre;
//HumanCount统计人数
static int HumanCount; //静态数据成员属于所有实例化对象
}
在Human.cpp文件
#include"Human.h"
//静态数据成员类外初始化
int Human::HumanCount=0;
Human::Human(){
HumanCount++;
}
}
对于非const的类静态成员,只能在类的实现的文件中初始化。
const类静态成员,可以在类内设置初始值,也可以在类的实现文件中设置初始值。(但是不要同时在这两个地方初始化,只能初始化一次)。
二.静态成员函数
在Human.h文件
class Human{
public :
Human();
~Human();
static int getHumanCount(); //静态成员函数
private:
int age;
int salre;
//HumanCount统计人数
static int HumanCount; //静态数据成员属于所有实例化对象
}
在Human.cpp文件
#include"Human.h"
int Human::getHumanCount(){
return HumanCount;
}
使用类的静态成员函数
//调用静态成员函数
//1.可以利用实例对象使用
Human h1;
cout<<h1.getHumanCount()<<endl;
//2.可以直接利用类来使用
cout<<Human::getHumanCount()<<endl; //静态数据成员不可以通过类名访问
//ERROR: Human::HumanCount;
1.静态数据成员不能被类直接访问,ERROR: Human::HumanCount;
2.静态成员函数不能直接访问this指针和对象的数据成员(非静态属性),只能访问静态数据 成员(类的成员)