在c++中,類的靜態成員變數是屬於整個類的而非某個特定物件。靜態成員變數只儲存乙份供所有物件共用,即在所有物件中都可以共享它。使用靜態成員變數實現多個物件之間的資料共享
不會破壞隱藏的原則,保證了安全性還可以節省記憶體。
靜態成員變數的定義或者宣告需要加關鍵字static。靜態成員可以通過雙冒號來引用,即《類名》::《靜態成員名》 。使用靜態成員變數需要注意以下幾點:
舉個栗子,靜態成員函式呼叫非靜態成員變數的三種方法:
1、通過類物件引用實現呼叫
class statictest
;#include "statictest.h"
#include using namespace std;
int statictest::sum = 0;//靜態成員在此初始化
statictest::statictest(int a, int b, int c)
void statictest::getnumber()
void statictest::getsum()
2、使用全域性變數位址
a g_a;
class a
void hello()
private:
static int m_statica;
int m_a
};
3、使用類自身靜態變數
即類中定義乙個該類自身的靜態成員變數m_staticself,最後在靜態成員函式中使用m_statticself去呼叫一般成員。
//.h
class ctesta
;//.cpp
ctesta* ctesta::m_staticself = null;
ctesta::ctesta()
ctesta::~ctesta()
void winapi ctesta::threadproc()
void ctesta::process( )
參考文章: 靜態成員變數 類 C
if 0 如何訪問靜態成員 四種用法 1 rectangle printtotal 2 rectangle r r.printtotal 3 rectangle p r p printtotal 4 rectangle ref r int n ref.ntotalnumber p printtota...
C 類的靜態成員變數
include using namespace std class rect rect static intgetcount private int width int length static int count 靜態成員變數count來計數 int rect count 0 取消注釋才不會編譯...
C 類的靜態成員變數與靜態成員函式
什麼是靜態成員變數?又為什麼出現?在c語言中稱之為靜態變數,因為c 中增加了類的概念,所以稱之為靜態成員變數。宣告方式 在一般變數的宣告前加上static static int char a 作用 static 修飾的變數在它所在的函式生存期結束後在該函式體內部依然儲存其原有的值 看個小例子 inc...