物件導向C (8)友元函式和友元類

2021-10-03 20:04:18 字數 719 閱讀 9576

c++提供了一種允許外部類和外部函式訪問類的私有成員和保護成員的輔助方法,即將它們宣告為乙個給定類的友元,使得其具有類成員函式的訪問許可權。

但友元本身不是類的成員

在乙個類中,可以利用關鍵字friend將別的模組宣告為它的友元,這樣,該類中本來隱藏的資訊就可以被友元函式訪問。

友元函式:友元是一般函式或者類的成員函式

**友元類:**友元是乙個類。該類所有函式都為友元函式

class 類名

,a宣告為類1的友元,b宣告為類2的友元,也可以完成兩個類之間的資料

因為友元函式沒有this指標,則引數要有三種情況:

要訪問非static成員時,需要物件做引數;

要訪問static成員或全域性變數時,則不需要物件做引數;

如果做引數的物件是全域性物件,則不需要物件做引數.

可以直接調用友元函式,不需要通過物件或指標

友元類:

類a中的某些成員函式想訪問b中的資料成員時:

class 類名b

友元的作用之一是(a)

提高程式的執行效率 加強類的封裝性 實現資料的隱藏性 增加成員函式的種類

友元不具有傳遞性,有單向性,友元關係不能被繼承

C 物件導向 友元函式和友元類

2.友元函式的另一種實現 3.友元類 4.為什麼會有友元函式 class person void print person a 對於上面的person類,內部有private protected public的三類訪問許可權的成員。寫乙個外部函式print 來列印這三類成員,則print 可以訪問p...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...