乙個類可以宣告乙個普通函式或者另乙個類的成員函式成為這個類的友元函式,也可以宣告另乙個類為這個類的友元類,因此友元就包括友元函式和友元類。而友元類的成員函式會自動成為這個類的友元函式。
友元的引入其實就是為了解決程式中的資料共享問題,而類的友元就解決了類與類之間,類與函式之間的資料共享。
類的友元函式的宣告方式:friend型別說明符 函式名(形參);
類的友元類的宣告方式:friendclass 類名;
注意:類的友元函式的宣告在類中,實現在類外,實現時和普通的函式實現一樣,此時雖然函式宣告在類中,但是友元函式卻不是類的成員函式。
類的友元類的一些特點:1不具有傳遞性,如果類b是類a的友元,類c是類b的友元,如果無宣告,則類c與類a不具有友元關係;2單向性,如果類b是類a的友元,那麼類b的成員函式可以訪問類a的私有和保護資料成員,但是類a則不能訪問類b的成員;3不具有繼承性,如果類b是類a的友元,那麼類b的派生類與類a沒有友元關係。
以上就是我對友元的一些認識。
C 中的 友元函式 友元類
1.友元函式的簡單介紹 1.1為什麼要使用友元函式 在實現類之間資料共享時,減少系統開銷,提高效率。如果類a中的函式要訪問類b中的成員 例如 智慧型指標類的實現 那麼類a中該函式要是類b的友元函式。具體來說 為了 使其他類的成員函式直接訪問該類的私有變數。即 允許外面的類或函式去訪問類的私有變數和保...
C 中的友元函式和友元類
結合著類的特性和類中一般成員函式,我們可以這樣理解 類具有封裝和資訊隱藏的特性。只有類的成員函式才能訪問類的私有成員,程式中的其他函式是無法訪問私有成員的。非成員函式可以訪問類中的公有成員,但是如果將資料成員都定義為公有的,這又破壞了隱藏的特性。另外,應該看到在某些情況下,特別是在對某些成員函式多次...
友元類的相關知識
1 友元類的所有成員函式都是另乙個類的友元函式,都可以訪問另乙個類中的隱藏資訊 包括私有成員和保護成員 2 友元關係不能被繼承。3 友元關係是單向的,不具有交換性。若類b是類a的友元,類a不一定是類b的友元,要看在類中是否有相應的宣告。4 友元關係不具有傳遞性。若類b是類a的友元,類c是b的友元,類...