所谓静态成员变量就是在变量类型前面加上static
例如:static int a;
在c++中有三个条件分别是:
1 在编译阶段分配内存
2 类内声明,类外初始化
3 所有对象共享同一份数据
看例子:
可以看出id是在类内声明,在类外初始化。注意:在类外初始化一定是int person::id=202201;
所有对象共享同一份数据
看例子:
结果是两个200。所以p2改了以后p1也改了,也就印证了共享同一份数据。
静态成员变量不仅可以通过对象访问,例如:
Person p1;
p1.m_A = 100;
cout << "p1.m_A = " << p1.m_A << endl;
Person p2;
p2.m_A = 200;
cout << "p1.m_A = " << p1.m_A << endl; //共享同一份数据
cout << "p2.m_A = " << p2.m_A << endl;
还可以通过类名访问: