靜態成員就是在成員變量和成員函數前加上關鍵字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; }