C 中類的靜態成員3 3

2021-10-12 01:47:47 字數 582 閱讀 2058

在《c++中類的前向宣告》中提到,在類中定義自身型別的成員變數時,由於類還沒有定義完全,所以只能將該成員變數定義為自身型別的指標或引用。

class myclass

;

其中,m_mc1的型別是myclass類的指標;m_mc2的型別是myclass類的引用。而對於靜態成員s_mc來說,可以將其直接宣告為myclass類的物件。

因為類的非靜態成員是跟類的物件有關,所以不能將其作為類成員函式的預設實參。在myclass類中新增其成員函式

void myfunc(myclass* pmc = m_mc1)

其中,myfunc()函式的引數是myclass類的指標,該函式的引數預設值設定為myclass類的非靜態成員變數m_mc1,此時編譯器報錯資訊為「error c2648: 「myclass::m_mc1」: 將成員作為預設引數使用要求靜態成員」。

可以將myfunc()函式的引數預設值設定為靜態成員變數s_mc。

void myfunc(myclass* pmc = &s_mc)

C 類中的靜態成員

相關規則 1 靜態函式不能呼叫類的成員變數和成員函式 2 成員函式可以呼叫靜態變數和靜態函式 3 靜態變數和靜態函式不屬於類的任何具體物件 沒有this指標 但是可被類的所有物件共享。4 類的靜態變數和靜態函式不能被其派生類繼承 5 靜態變數必須初始化後才能被呼叫 無論是成員函式還是靜態函式呼叫 靜...

C 類中的靜態成員

我們學習乙個知識點,首先想到的是為什麼要有這個東西的存在呢?對於c 類的靜態成員存在的理由如下 有的時候類需要它的一些成員與類本身無關,而不是與類的各個物件保持關聯。例如 乙個銀行賬戶型別類可能需要乙個資料成員來表示當前基準利率。在此例中,我們希望利率與類關聯,而非與類的每個物件關聯。從實現的效率的...

C 類中的靜態成員

1 靜態類成員變數 ifndef cl student h define cl student h include class cl student endif include qstring cl student sta school uestc 初始化靜態類成員變數 cl student cl ...