static成員函式和static成員

2022-08-16 00:33:20 字數 707 閱讀 3846

c++的靜態成員是和類關聯的,它屬於某個類,但是不屬於某個特定的物件。靜態成員變數只儲存乙份供所有物件共用。所以在所有物件中都可以共享它。使用靜態成員變數實現多個物件之間的資料共享不會破壞隱藏的原則,保證了安全性還可以節省記憶體。

但是可以通過物件呼叫靜態成員函式,雖然我們一般不會這麼做:

1

class

point 2

7static

void

output() 8

10};

1112

void

main()

13

在類外實現時不加static關鍵字,只有在類內宣告時才加static。

我們一般會用類名直接呼叫靜態成員函式:

1 point::output();    //

ok 這是更常見的呼叫方式

靜態成員函式中不能呼叫非靜態成員。因為靜態成員函式的作用就是為了處理靜態成員。而靜態成員和靜態成員函式是沒有this指標的,但是非靜態成員是有this指標的,所以static member function不能呼叫非靜態成員。

為什麼靜態成員和靜態成員函式沒有this指標?

this指標的值是當前被呼叫的成員函式所在的物件的起始位址,而靜態成員只屬於類,不屬於物件,也就沒有this指標了。

static資料成員 static成員函式

類的static資料成員的引入 不同物件之間共享訪問,本質上是對該型別所有物件,只維持乙份拷貝。與全域性變數相比,優勢 1.靜態資料成員仍然是在類域名字空間,沒用進入程式的全域性名字空間,因此不存在與程式中其他全域性名字衝突的可能。2.可以實現資訊隱藏,靜態資料成員可以是private成員,全域性變...

static成員和非static成員

1.靜態成員 1 所有的static方法不允許呼叫非static定義的屬性或方法,因為靜態函式成員屬於類的成員,例項成員變數是屬於某個物件的,而靜態方法在執行時,並不一定存在物件,但是靜態方法可以使用靜態變數 2 描述共享屬性,只需在屬性前新增static關鍵字即可,建立乙個類的多個例項,其stat...

const成員 和 static成員

1.const成員變數 2.const成員函式 3.static成員變數 4.static成員函式 純手敲,給自己加深印象 1.const成員變數 必須在建構函式初始值列表進行初始化,或者申明const成員變數為static,可在類內初始化 class account void show priva...