標籤:c++ static
靜態成員(static)和非靜態成員的初始化有比較大的區別,所以這裡單獨成章。
靜態成員初始化:
一,靜態變數:
#include <iostream>using namespace std;class Ctest{public: static int a;};int Ctest::a = 12;int main(){ cout << Ctest::a << endl; Ctest ct; cout << ct.a << endl; return 0;}
結果:
650) this.width=650;" title="01.png" src="https://s1.51cto.com/wyfs02/M01/94/D1/wKiom1kOlhWjuke1AAAYRISmc3M735.png-wh_500x0-wm_3-wmp_4-s_3297800170.png" alt="wKiom1kOlhWjuke1AAAYRISmc3M735.png-wh_50" />
注意點:
①,靜態變數的初始化只能在類外進行,不能使用參數列表進行初始化。
②,其調用方案有2種:
1,類名範圍 : Ctest::a
2,對象調用: Ctest ct; ct.a
③,內外初始化需要加帶變數類型名 : int Ctest::a = 12 。需要將int加上。
二,靜態常量整形參數
#include <iostream>using namespace std;class Ctest{public: static int a; static const int b = 18;};int Ctest::a = 12;int main(){ cout << Ctest::b << endl; Ctest ct; cout << ct.b << endl; return 0;}
結果:
650) this.width=650;" title="02.png" src="https://s2.51cto.com/wyfs02/M00/94/D1/wKiom1kOmSPALLVkAAAWP6gK5Vs885.png-wh_500x0-wm_3-wmp_4-s_3878173790.png" alt="wKiom1kOmSPALLVkAAAWP6gK5Vs885.png-wh_50" />
靜態方法:
#include <iostream>using namespace std;class Ctest{public: static int a; static const int b = 18; static void fun1() { cout << "靜態函數" << endl; }};int Ctest::a = 12;int main(){ Ctest::fun1(); Ctest ct; ct.fun1(); //cout << ct.b << endl; return 0;}
結果:
650) this.width=650;" title="03.png" src="https://s1.51cto.com/wyfs02/M00/94/D1/wKiom1kOmirydOzIAAAWc0HiyZU552.png-wh_500x0-wm_3-wmp_4-s_3156166246.png" alt="wKiom1kOmirydOzIAAAWc0HiyZU552.png-wh_50" />
本文出自 “Better_Power_Wisdom” 部落格,請務必保留此出處http://aonaufly.blog.51cto.com/3554853/1922808
C++ 靜態成員