静态成员就是在成员变量和成员函数前加上关键字static
一、静态成员变量
特点:
1.所有对象共享同一份数据
2.类内声明,类外初始化
3.在编译阶段分配内存
ps1:静态变量有两种访问方式
1.
person p; p.m_A = 0;2.
person::m_A = 0;ps2:静态成员变量必须在类外初始化
二、静态成员函数
1.所有对象共享一个函数
#include <iostream> using namespace std; class Person { public: // 静态成员函数 static void show() { cout << "我是唯一的静态函数!" << endl; } }; int main() { // 用 类名 调用 Person::show(); // 用对象 p1 调用 Person p1; p1.show(); // 用对象 p2 调用 Person p2; p2.show(); // 结论:p1、p2 调用的是同一个函数! return 0; }2.静态成员函数只能访问静态成员变量
#include <iostream> using namespace std; class Person { public: static int m_A; // 静态变量 int m_B; // 普通变量 // 静态成员函数 static void test() { m_A = 100; // ✅ 可以访问静态变量 // m_B = 200; // ❌ 报错!静态函数不能访问普通变量 } }; // 静态变量必须类外初始化 int Person::m_A = 0; int main() { Person::test(); cout << "m_A = " << Person::m_A << endl; return 0; }