C++中静态成员函数和静态成员变量

1、静态成员变量 语法:static 成员变量
性质:共享(属于全部成员,一改全改)
用法:1、通过对象访问
2、通过类名访问
注意:1、静态成员变量在编译阶段就分配了内存。必须在类内声明,类外初始化
2、静态成员也有访问权限限制。类外只可访问public,子类只可以访问public和protected。

#include using namespace std; class Person { public: static int m_A; //类内声明:成员变量前+static }; int Person::m_A = 10; //编译阶段分配内存,因此类外初始化,需添加作用域 void test01() { //访问方式一:通过对象访问 Person p1; cout << p1.m_A << endl; //结果10 //访问方式二:通过类名访问 cout << Person::m_A << endl; //结果10 //共享属性 Person p2; cout << p2.m_A << endl; //结果10 //一改全改 p2.m_A = 20; cout << p1.m_A << endl; //结果20 cout << p2.m_A << endl; //结果20 } //静态成员变量有访问权限 class Person1 { public: static int m_A; private: static int m_B; }; int Person1::m_A = 10; int Person1::m_B = 20; void test02() { cout << Person1::m_A << endl; //cout << Person1::m_B << endl; //err:不可访问 } int main() { test01(); test02(); system("pause"); return 0; }

2、静态成员函数 【C++中静态成员函数和静态成员变量】语法:static成员函数
性质:共享
用法:1、通过对象访问
2、通过类名访问
注意:1、函数在类外只涉及调用,因此没有静态成员变量必须在类别初始化的问题,只需在类内定义即可
2、静态函数内如果包含成员变量,那该成员变量只能是静态的!
C++中静态成员函数和静态成员变量
文章图片

C++中静态成员函数和静态成员变量
文章图片

C++中静态成员函数和静态成员变量
文章图片

    推荐阅读