类的静态成员变量 static member
C++自学精简教程 目录(必读)
类的静态成员 static member 变量全局只有一份副本,不会随着类对象的创建而产生副本。
static 静态成员
在类的成员变量前面增加static关键字,表示这个成员变量是类的静态成员变量。
#include <iostream>
using namespace std;
struct MyStruct {// 下面的这条初始化语句等价于下面的两条语句://(1)ider= ider+ 1; //(2)id = ider;MyStruct() :id(++ider){}int id;static int ider;//将
};int MyStruct::ider = 0;
//(0) main函数开始执行之前
int main()
{//(1)创建对象my1,执行完下面这条语句之后,MyStruct::ider== 1, my1.id == 1 MyStruct my1;//(1)//(2)创建对象my2,执行完下面这条语句之后,MyStruct::ider== 2, my1.id == 2 MyStruct my2;//(2)//(3)创建对象my3,执行完下面这条语句之后,MyStruct::ider== 3, my1.id == 3 MyStruct my3;//(3)//my1.increaser和MyStruct::increaser是同一个变量//,只不过一个是通过对象访问,一个是通过类名访问cout << my1.id << " " << MyStruct::ider<< endl;cout << my2.id << " " << MyStruct::ider<< endl;cout << my3.id << " " << MyStruct::ider<< endl;return 0;
}
输出:
1 3
2 3
3 3
图形展示:
(0) main函数开始执行之前,静态数据初始化就已经完成过了

(1)创建对象my1

(2)创建对象my2

(3)创建对象my3