文章目录
静态成员
-
使用static修饰的成员;
-
静态的成员变量;
- 仅保留一份副本,不管创建多少个实例对象,都共享这一份数据;
- 类、对象均可以调用;
- 类外重新声明,并通过类初始化;
-
静态的成员函数;
- static修饰
- 没有this指针;
- 类、对象均可访问
- 静态的函数只能访问静态的成员或者类外的函数;
- 不使用const修饰为常量成员函数;
#include <iostream>
#include <string>
using namespace std;//
class People {
public:int age; // 实例成员变量,每个对象均有一个副本string name; // 实例成员变量static int objNum; // 静态成员变量, 仅有一个副本,所有的对象共享People() { this->objNum++;}// 重载构造方法 参数列表不同People(const int& age, const string& name):age(age), name(name) { // 参数列表初始化this->objNum++;}static int& getObjNum() { // 类内定义为内联函数return objNum; // 静态方法 只能访问静态的成员,且无this指针}
};// 类外(全局)初始化 静态变量
int People::objNum = 0;int main() {People p(20, "jack");People p1;cout << p.getObjNum() << endl;return 0;
}