C const 內聯 靜態成員 友元

2021-08-22 16:10:12 字數 1427 閱讀 7791

在成員函式後面加const,const修飾this指標所指向的物件,保證這個const成員函式的物件在函式內不會被改變。

注意點:

operator+可以加const,operator+=不可以加const

取位址運算子(無意義)

以inline修飾的函式叫做內聯函式,編譯時編譯器會在呼叫內聯函式的地方展開,沒有函式壓棧的開銷,內聯函式提公升程式執行的效率。

內聯函式是以空間換時間的做法,省去呼叫函式開銷,所以**很長或者有迴圈/遞迴的函式不適宜使用內聯。

定義在類內的成員函式預設定義為內聯函式。

巨集的優點:

巨集的缺點:

盡量用const、enum、inline替換 #define(巨集)

友元函式:在c++中友元函式允許在類外訪問該類中的成員,就像成員函式一樣,友元函式用friend說明。

友元函式不是類的成員函式

友元函式可通過物件訪問所有成員,私有和保護成員也一樣。

class date

;void display(const date& d)

int main()

友元類:整個類可以是另乙個類的友元,友元類的每個成員函式都是另乙個類的友元函式,都可訪問另乙個類中的保護或私有資料成員。

友元在一定程度上破壞了c++的封裝,不易多用。

靜態成員變數

靜態成員變數和一般成員變數的初始化不一樣。在類中宣告,類外定義。

若靜態成員變數是私有的,則通過介面間接呼叫。

靜態成員函式

靜態成員函式沒有隱含this指標,只能訪問靜態的成員變數。所以可以用型別::作用域訪問符直接呼叫靜態成員函式。

計算類的大小,不需要計算靜態成員的大小,因為他們不屬於類的成員。

靜態成員函式不可以訪問非靜態的成員。

非靜態的成員函式可以訪問靜態成員。

c const 內聯 友元 static

1.const修飾成員函式 要宣告乙個const型別的成員函式,只需在成員函式後面加上關鍵字const,const修飾this指標所指向的物件 const修飾成員函式保證了呼叫該成員函式的物件在函式內不會被改變 在類體外定義成員函式也必須加上const。class date注意 1 const物件只...

靜態成員,內聯,友元,const成員函式

一.靜態成員 靜態成員分為靜態成員函式和靜態資料成員,是為了實現我們有時候希望有某乙個或者幾個資料成員為類所定義出來的物件所共有,從而實現乙個類多個物件之間的資料共享,如統計總數,平均值等。靜態資料成員 若類中的乙個資料成員被宣告為static,則這個成員為靜態資料成員,這個成員為這個類的所有物件所...

靜態成員與友元

靜態成員與友元 1 實驗目的 學習友元函式的定義和原理。學習靜態資料成員和靜態成員函式的使用。學習靜態成員代替全域性變數實現物件間的共享。2 實驗內容 1 有如下類的定義。類成員函式copy用於實現兩個物件的相互拷貝,請完成該函式的實現。有兩種方法即用成員函式和友元函式實現 include incl...