友元

友元的作用是提高了程序的運行效率(即減少了類型和安全性檢查及調(diào)用的時間開

銷),但它破壞了類的封裝性和隱藏性,使得非成員函數(shù)可以訪問類的私有成員。

友元可以是一個函數(shù),該函數(shù)被稱為友元函數(shù);友元也可以是一個類,該類被稱為

友元類。

友元函數(shù)終究不是成員函數(shù),成員中有隱參 this 指針,可以直接訪問成員,而友元

中則沒有,必須得通過對象來訪問。

友元函數(shù)語法格式:

class A

{

friend void globalfunction(A &,...)public:

....

}

一個類的成員函數(shù)作友員,在聲明為另一個類的友員時,要將原類的作用域加上,

語法格式如下:

class A

{

friend

void One::globalfunction(A&,...);public:

...

}

友元類:

class A

{

????friend class B;

? ? public:

? ? private:

...

};

? 友元關(guān)系不能被繼承。

?友元關(guān)系是單向的,不具有交換性。若類 B 是類 A 的友元,類 A 不一定是類 B

的友元,要看在類中是否有相應(yīng)的聲明。

?友元關(guān)系不具有傳遞性。若類 B 是類 A 的友元,類 C 是 B 的友元,類 C 不一定

是類 A 的友元,同樣要看類中是否有相應(yīng)的聲明。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • friend類: 如果class A想讓class B訪問它的成員,只需要在class A中將class B聲明稱...
    teanee閱讀 511評論 0 0
  • 靜態(tài)成員 靜態(tài)成員的定義或聲明要加個關(guān)鍵static。靜態(tài)成員可以通過雙冒號來使用即<類名>::<靜態(tài)成員名>。 ...
    黃巴巴閱讀 660評論 0 2
  • 類的友元函數(shù)是定義在類外部,但有權(quán)訪問類的所有私有(private)成員和保護(protected)成員。盡管友元...
    凱恩_Kane閱讀 1,217評論 0 0
  • 引入 當(dāng)某一類或函數(shù)需要訪問或使用另一類的私有函數(shù)或變量時,引入友元。例如:你的銀行卡號是私有的,別人不能訪問,但...
    ZayAlan閱讀 455評論 0 0
  • 友元函數(shù) : 友元函數(shù)是可以直接訪問類的私有成員的非成員函數(shù)。它是定義在類外的普通函數(shù),它不屬于任何類,但...
    mingzhi618閱讀 382評論 0 0

友情鏈接更多精彩內(nèi)容