類的靜態成員

2021-07-30 23:08:07 字數 961 閱讀 6684

有的時候類需要它的一些成員與類本身直接相關,比如我們希望某個成員與類相關聯,一旦這個成員浮動,我們希望所有的物件都能使用該值。

定義乙個類,用它表示銀行的賬戶記錄:

class account 

static

double rate()

static

void rate(double);

private:

std::string owner;

double amount;

static

double rate;

static

double initrate();

};

每個account物件將包含兩個事資料成員:owner和amount。

使用作用域運算子直接訪問靜態成員:

double r;

r = account::rate();

雖然靜態成員不屬於類的某個物件,但是我們可以通過使用類的物件、引用或者指標來訪問靜態成員:

account ac1;

account *ac2 = &ac1;

r = ac1.rate();

r = ac2->rate();

成員函式不用通過作用域運算子就能直接使用靜態成員:

class account 

private:

static

double rate;

};

可在類的內部也可以在類的外部定義靜態成員函式。注意在類的外部定義靜態成員時,不能重複static關鍵字,該關鍵字只出現在類內部的宣告語句:

void account::rate(double newrate)

每個靜態資料成員只能定義一次。

靜態資料成員一旦定義,將一直存在於程式的整個生命週期中。

類靜態成員和類靜態成員函式

當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...

類的靜態成員

類的靜態成員存在於任何物件之外,物件中不包含任何與靜態資料成員有關的資料。class account 對於account的每乙個物件豆漿包含owner和amount兩個資料成員,而對於靜態成員interestrate只有乙個,且被所有的物件共享。double r r account rate 2.使...

類的靜態成員

1,static靜態成員,靜態成員 變數 or 函式 可以是public or private,訪問許可權與普通 非static 成員一樣,受到限定符限制 2,靜態成員 變數 or 函式 不與任何物件繫結在一起,而是被所有物件共享 特別是靜態成員函式,它不包含this 指標引數 3.public靜態...