静态成员是指成员变量和成员函数前加上关键字static。
静态成员分为:静态成员变量、静态成员函数;
静态成员变量:
- 所有对象共享同一份数据
- 在编译阶段分配内存
- 类内声明,类外初始化
静态成员函数:
- 所有对象共享同一个函数
- 静态成员函数只能访问静态成员变量
#include<iostream> using namespace std; class Person{ public: //类内声明,静态成员变量也是有访问权限的 static int m_a; static void func() { //静态成员函数可以访问静态成员变量 //静态成员函数也是具有访问权限的 m_a = 300; cout << "static func()函数调用" << endl; } }; //类外初始化,Person::m_a表明是Person类中的m_a属性 int Person::m_a = 100; void test(){ Person p; cout << p.m_a << endl; p.func(); Person p2; p2.m_a = 200; //此时p.m_a也变成了200,说明是共享的一份数据 cout << p.m_a << endl; //静态成员变量也可以通过这样访问 cout << Person::m_a << endl; //静态成员函数也可以通过这样访问 Person::func(); } int main() { test(); system("pause"); return 0; }
输出: