C/C++——static用法完整總結
- static在類外部使用
1、static修飾全域性變數,限制全域性變數的作用域,僅僅限於該檔案。
2、static修飾區域性變數,儲存位置從堆疊段轉移到了data段的rw段或bss段。生命週期變為和整個程式的生命週期一樣了。
- static在類內部使用
用來實現同一個類的所有物件的資料共享。
class A()
{
private:
int num;
static int shareVal;//該變數為static變數
};
|
在生成物件的時候類中的普通資料成員才開闢空間,而static成員變數在類宣告的時候已經為該變數開闢了空間(在data段的rw段)。
static既屬於類,也屬於物件。
類內定義,類外初始化,int A::shareVal = 100;//初始化
呼叫:
類名::static變數
物件名.static變數
- static類成員函式
為了管理靜態成員,c++提供了靜態成員函式,以對外提供介面。
如果static成員變數為private,則只能通過靜態成員函式訪問該static變數。
呼叫:
類名::static函式
物件名.static函式
總結:
1、靜態成員函式的意義,不在於資訊共享,資料溝通,而在於管理靜態資料成員,完成對靜態資料成員的封裝。
2、靜態成員函式只能訪問靜態資料成員,不能訪問非static資料成員和非static成員函式。原因:非靜態成員函式,在呼叫時 this指針時被當作引數傳進。而靜態成員函式屬於類,而不屬於物件,沒有
this 指標。
相關文章
- C/C++——const用法完整總結C++
- C++中const用法總結C++
- C++ sort排序函式的用法總結C++排序函式
- 理解C++ staticC++
- C++ 關於static variables的學習中遇到的問題總結C++
- C和C++中的staticC++
- 標準 C++ 中的 string 類的用法總結C++
- 【C++】 C++知識點總結C++
- C++:字串總結C++字串
- c++基礎知識(八)C/C++中修飾符const、extern、static、volatile的用法C++
- C/C++指標總結C++指標
- C++除錯總結C++除錯
- c++學習總結C++
- C++ const 總結C++
- 【C++泛讀總結】C++
- C++ STL容器總結C++
- C++基礎總結C++
- C++語言中std::array的神奇用法總結,你需要知道!C++
- 【轉】C++ static關鍵字C++
- C++中static關鍵字C++
- C# 之 static的用法詳解C#
- C++ 指標常見用法小結C++指標
- Java中static、final用法小結Java
- c++ map用法C++
- C++設計模式 - 總結C++設計模式
- 面試總結(C++基礎)面試C++
- C++ 14 新特性總結C++
- C/C++中Static和Const的作用C++
- C/C++知識要點總結之C++物件導向C++物件
- c++函式學習總結C++函式
- C++ STL演算法總結C++演算法
- C++檔案讀寫總結C++
- c++/tcl程式設計總結C++程式設計
- c++程式碼優化總結C++優化
- Boost Test學習總結(C++)C++
- C++基礎簡單總結C++
- 【C++ STL】Set用法C++
- C++中clock用法C++