静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员
1.静态成员变量
- 所有对象共享同一份数据
- 在编译阶段分配内存
- 类内申明,类外初始化
2.静态成员函数
- 所有对象共享一个函数
- 静态成员函数只能访问静态成员变量
#include <iostream> using namespace std; class Person { public: static int m_a; static void fun() { m_a = 200; //静态成员函数只可以访问静态成员变量,不可以访问非静态成员变量 //因为无法区分到底是哪个对象的成员变量 cout << "static void fun 调用 " << endl; } } int Person::m_a = 100; void test1() { //静态变量,不属于某一个具体的对象,所有的对象都共享同一份数据 //因此静态成员变量有2种访问方式 //1通过对象进行访问 Person p; cout << p.m_a << endl; p.fun() //2 通过类名进行访问 cout << Person::m_a << endl; Person::fun(); //静态成员变量也是由访问权限的 } int main() { test1(); return 0; }