C++學習大綱:靜態成員


C++學習大綱:靜態成員

C++ 靜態成員

在C++中,採用靜態成員來解決同一個類的對象共享數據的問題。類的靜態成員分為靜態數據成員和靜態成員函數。

1. 靜態數據成員

靜態數據成員在一個類中只分配一次存儲空間,也就是一個類的所有對象的靜態數據成員共享一塊存儲空間。

在計數時往往使用的就是靜態數據成員。

2. 靜態成員函數

靜態成員函數只能訪問靜態成員(包括靜態數據成員和靜態成員函數),並且靜態成員的訪問也要遵循類的訪問控制。

靜態成員函數沒有隱藏的this指針參數,因為靜態成員函數對靜態數據成員進行操作,而靜態數據成員是某類對象共享的,它們只有一個拷貝,因此,靜態成員函數不需要知道某個具體對象

————————————————

C++學習大綱:靜態成員

C++靜態成員變量的初始化

需要注意的是:靜態數據成員不能在類中初始化,一般在類外和main()函數之前初始化,缺省時初始化為0。

1.static成員的所有者是類本身,但是多個對象擁有一樣的靜態成員。從而在定義對象是不能通過構造函數對其進行初始化。

2.靜態成員不能在類定義裡邊初始化,只能在class body外初始化。

3.靜態成員仍然遵循public,private,protected訪問準則。

4.靜態成員函數沒有this指針,它不能返回非靜態成員,因為除了對象會調用它外,類本身也可以調用

靜態成員屬於全局變量,是所有實例化以後的對象所共享的,而成員的初始化你可以想象成向系統申請內存存儲數據的過程,顯然這種共有對象。不能在任何函數和局部作用域中初始化。

class point{

public:

point(){};

//...

private:

static int x,y;

};

int point::x = 0;

int point::y = 0;

int main(){

//...

}

————————————————


C++學習大綱:靜態成員

通過分享實用的計算機編程語言乾貨,推動中國編程到2025年基本實現普及化,使編程變得全民皆知,最終實現中國編程之崛起,這裡是中國編程2025,感謝大家的支持。

原文鏈接:https://blog.csdn.net/h_wlyfw/article/details/20383579

原文鏈接:https://blog.csdn.net/haitaolang/article/details/70771327


分享到:


相關文章: