1、靜態數據成員 安全
1.靜態數據成員屬於類,普通數據成員屬於某一實例化對象; 函數
2.靜態數據成員與靜態變量同樣,是在編譯時建立並初始化,它在該類的任何對象被創建以前就存在; this
3.靜態數據成員不能在類中初始化,必須在類外定義初始化;通常在類聲明以後或main()以前; spa
4.私有靜態數據成員不能被類外部函數訪問,也不能用對象進行訪問。 指針
靜態數據成員的使用方法和注意事項以下: 對象
一、靜態數據成員在定義或說明時前面加關鍵字static。<數據類型><類名>::<靜態數據成員名>=<值> io
三、靜態數據成員是靜態存儲的,它是靜態生存期,必須對它進行初始化。
四、引用靜態數據成員時,採用以下格式:
<類名>::<靜態成員名> 編譯
2、靜態成員函數 變量
定義格式: 數據類型
static 返回類型 靜態成員函數名(實參表);
公有靜態數據成員的訪問格式:
1. 類名::靜態成員函數名(實參表)
2. 對象.靜態成員函數名(實參表)
3. 對象指針->靜態成員函數名(實參表)
說明:
1. 靜態成員函數能夠定義成內嵌的,也能夠在類外定義(在類外定義時,不要用static前綴);
2. 通常狀況下,靜態成員函數主要用來返回全局變量或同一個類中的靜態數據成員(當它與靜態數據成員一塊兒使用時,達到了對同
一個類中對象之間共享數據進行維護的目的);
3. 編譯系統將靜態成員函數限定爲內部鏈接,即,與現行文件相鏈接的其餘文件中的同名函數不會與該函數發生衝突,維護了該函 數使用的安全性,這是使用靜態成員函數的另外一個緣由;
4. 在通常的成員函數中,都隱含有一個this指針,用來指向對象自身,而在靜態成員函數中是沒有this指針的,由於它不與特定的對象想聯繫,調用時使用以下格式較好: 類名::靜態成員函數名();
5. 私有靜態成員函數不能被類外部函數和對象訪問。
大摩2013在線筆試:
在VS2012中只有B正確,
在CDE中,objOut的成員只有m_Out,沒法經過objOut訪問內部類;