c++基礎知識(十)學習C++靜態成員注意事宜
C++中的一個類中還可以定義靜態成員,但C++靜態成員是所有物件公有的,每個靜態成員分為靜態資料成員和靜態成員函式。
AD:
下面文章著重介紹C++靜態成員,類的靜態資料成員應該在程式碼中被顯示的初始化,一定要在類外進行, C++靜態成員和普通資料成員區別較大,體現在下面幾點:
1.靜態資料成員
在類中定義C++靜態成員成員的方法就是在該成員的前面加上關鍵字static.
定義靜態資料成員的語句格式如下:
class 類名
{
……
static 型別說明符 成員名;
……
};
C++靜態成員是類的所有物件共享的成員。靜態資料成員所佔的空間不會隨著物件的產生而分配,也不會隨著物件的消失而回收。對靜態資料成員的操作和類中一般資料成員的操作是不一樣的,定義為私有的靜態資料成員不能被外界所訪問。靜態資料成員可由任意訪問許可權許可的函式所訪問。
由於靜態資料成員是類的所有物件共享的,而不從屬於任何一個具體物件,所以必須對類的靜態資料成員進行初始化,但對它的初始化不能在類的建構函式中進行,其初始化語句應當寫在程式的全域性區域中,並且必須指明其資料型別與所屬的類名,其初始化格式如下:
型別類名::變數名=值;對於在類的public部分說明的靜態資料成員,在類的外部可以不使用成員函式而直接訪問,但在使用時必須用類名指明所屬的類,其訪問格式為:對於在類的非public部分說明的靜態資料成員,則只能由類的成員函式訪問,其訪問方法與訪問類中普通資料成員的訪問方法完全一樣,但在類的外部不能訪問。
2.靜態成員函式
靜態成員函式的定義與一般成員函式的定義相同,只是在其前面冠以static關鍵字,其定義格式如下:
class 類名
{
…
static 型別 函式名(形參)
{ 函式體 }
…
};
說明:
(1)類的C++靜態成員函式只能訪問類的靜態資料成員,而不能訪問類中的普通函式成員(非靜態資料成員),因為普通資料成員只有類的物件存在時才有意義。
(2)C++靜態成員函式與類相聯絡,而不與類的物件相聯絡,所以,在類的外部呼叫類中的公有靜態成員函式,必須在其左面加上“類名::”,而不是通過物件名呼叫公有靜態成員函式。在類的外部不能呼叫類中的私有靜態成員函式。
摘自:[url]http://developer.51cto.com/art/201001/181379.htm[/url]
相關文章
- C++類靜態成員C++
- c++類的靜態成員C++
- c++中的靜態成員C++
- C++ 靜態資料成員C++
- C++:類的靜態成員C++
- C++ 類的靜態成員C++
- C++基礎知識學習筆記(1)C++筆記
- C++基礎知識學習筆記(3)C++筆記
- 【C++】C++基礎知識C++
- C++類中的常成員和靜態成員C++
- C++基礎知識C++
- C++基礎知識整理C++
- C++學習筆記(三):類與物件--靜態成員變數與常成員函式C++筆記物件變數函式
- C++基礎知識篇:C++ 運算子C++
- (C++) queue容器基礎知識C++
- C++類的靜態成員變數初始化C++變數
- C/C++返回內部靜態成員的陷阱薦C++
- C++基礎知識筆記(1)筆記
- C++ static variable(靜態變數) 學習C++變數
- 常用基礎知識面試(C++為主)面試C++
- 學習Java知識應該注意哪些基礎原則Java
- C++ -> Java快速學習-基礎C++Java
- C++ 字串完全指南:學習基礎知識到掌握高階應用技巧C++字串
- Android NDK入門:C++ 基礎知識AndroidC++
- 【ASM學習】基礎知識ASM
- 靜態資料成員和靜態成員函式函式
- c++基礎知識(十一)檔案的複製C++
- 大規模C++程式設計 -- 基礎知識C++程式設計
- c++基礎十(流程結構)C++
- Android基礎知識學習Android
- 基礎知識學習筆記筆記
- JavaSE基礎知識學習-----集合Java
- WebAPI基礎知識學習(1)WebAPI
- 【ASM學習】ASM基礎知識ASM
- JavaSE基礎知識分享(十)Java
- oop類的繼承與類靜態成員學習OOP繼承
- 零基礎如何學習C/C++C++
- JavaSE基礎知識學習—–多型Java多型