//該類用來測試靜態成員變數是否占有了類的空間
class teststatic
; ~teststatic(){};
static int getvalue()
static void setvalue(int nvalue)
private:
static int m_ntestvalue;
static int m_ntestsize;
};int teststatic::m_ntestvalue = 0;
int teststatic::m_ntestsize = 0;
//該結構的用來測試在結構體裡面使用的類的靜態成員變數
//和在結構體外面的是否是乙個
struct teststaticcls ;/*
總結: 靜態成員變數並不占用類空間的大小,如teststatic類的在vs2003下使用sizeof結果是1,
teststaticcls使用sizeof結果是8(tsc實際為1,記憶體對齊占用3個位元組).在這裡其實類的
作用就相當於靜態成員變數的命名空間一樣的功能,限制了改全域性變數只能通過該類
來訪問。放在結構體中也是同樣的原理。
*/
teststatic test1;//第乙個物件
test1.setvalue(4);//賦值
teststatic test2;//第二個物件未賦值
cout<
結果:如下圖
乙個類成員函式的區域性靜態變數問題
原文 當時遇到的需求需要這樣處理 呼叫某個類物件的某個成員函式時,第一次有具體意義的,其他時候都是保持不變的 無意義的。這個需求可以看做是在呼叫某成員函式時,第一次進行初始化,其他時候不進行操作,即在首次呼叫時進行初始化,根據這點,很容易想到c c 裡面的static變數,它的作用是保持變數內容的持...
類裡面定義乙個指向自己的靜態成員指標變數
class a public static a my 解釋 在類裡面定義自己的乙個靜態變數,當這個類的所有物件都需要與某個同類的物件發生關係 不要想歪了 時,就這麼用。這個靜態成員一般是全域性存在的 廢話 而且有特殊地位的物件。有乙個很形象的例子與此類似 好比有乙個部落,對部落裡的人,可以用 cla...
類中的靜態成員變數 靜態成員函式
類中的靜態成員變數 靜態成員函式?1 類中的靜態成員變數 靜態成員變數屬於整個類,不屬於某個特定的物件,因此無論建立了多少個物件,所有物件都共享類中的靜態成員變數。靜態成員變數必須在類內宣告,類外初始化。2 類中的靜態成員函式 靜態成員函式也是屬於類本身,而不屬於某個特定的物件。靜態成員函式與普通成...