静态成员变量就是在属性定义前加上关键字static,它有以下特点:
所有对象共享同一份数据;在编译阶段分配内存;类内声明,类外初始化。 #include<iostream> #include<string> using namespace std; class Person { public: static int m_Age; }; int Person::m_Age = 18; int main() { Person p1; cout << p1.m_Age << endl; Person p2; p2.m_Age = 20; cout << p1.m_Age << endl; system("pause"); return 0; }在main函数中,我们创建了一个p1,输出年龄为18,这里一切正常; 然后又创建了p2,再把p2的年龄改为20,再输出p1的年龄,发现p1的年龄也变成了20。 说明了静态成员变量共享一份数据。 也正是有这一点,静态成员变量有两种访问方式:
通过一个实例化访问 Person p1; cout << p1.m_Age; 通过类名直接访问 cout << Person::m_Age;当然,访问的前提都是这个成员变量的访问权限为public,如果是私有则不能访问。