静态成员就是在成员变量和成员函数前加上关键字 static ,称为 静态成员
静态成员分为:
- 静态成员变量
- 所有对象共享一份数据
- 在编译阶段分配内存
- 类内声明,类外初始化
- 静态成员函数
- 所有对象共享同一个函数
- 静态成员函数只能访问静态成员变量
-
#include <iostream> #include <cstdio> using namespace std; //静态成员函数 //所有对象共享同一个函数 //静态成员函数只能访问静态成员变量 class Person { public: //静态成员函数 static void func() { m_A = 100; //静态成员函数 可以访问 静态成员变量 //m_B = 200; //静态成员函数 不可以访问 非静态成员变量 ,无法区分到底是哪个对象的m_B属性 cout << "static void func 调用" << endl; } static int m_A; //静态成员变量【类内声明】 int m_B; //非静态成员变量 //静态成员函数也是有访问权限的 private: static void func2() { cout << "static void func2 调用" << endl; } }; int Person::m_A = 0; //【类外初始化】 //有两种访问方式 void test01() { //1、通过对象访问 Person p; p.func(); //2、通过类名访问 Person::func(); //Person::func2(); 类外访问不到私有静态成员函数 } int main() { test01(); return 0; }