c++_友元基礎知識

友元,打破類的隱藏和封裝,方便訪問與修改,提高效率


1,友元函數:直接在函數前加friend,並且沒有this->屬性(非類成員函數)

函數與存放位置無關,直接調用,類似於使用類空間,直接只用函數名調用。

 

2,友元類:類前加上friend,沒有交換性和傳遞性,不能互爲友元,
數據傳遞:
a>,其中靜態變量常用於類與類的數據傳遞

b>,直接引用類,實現數據傳遞

3,友元成員函數:類B中,類A函數前加上friend

類A的某個函數爲類B的友元函數,那麼A的這個函數可以直接訪問B的成員

 

常見問題:

1,友元函數,一般聲明在類中,定義在類外,

但是如果非要定義要在類中:類域內定義的友元函數調用時必須具有該類類型的實參,即friend void f( A& a ) {}

  2,當兩個類有友元關係時,其定義的順序會影響編譯,就是說代碼邏輯沒問題,編譯會報錯。

調節順序,一般是友元函數的定義放在最後。

(友元可以直接訪問靜態變量)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章