C 筆記 物件導向) 15友元函式 友元類

2021-10-07 02:40:26 字數 667 閱讀 8667

類的友元函式類的外部定義,但有權訪問類的所有私有(private)成員和保護(protected)成員。儘管友元函式的原型有在類的定義**現過,但是友元函式並不是成員函式。假如a中宣告b是它的友元,則b可以訪問a的一切成員。

簡記:a說b是我兄弟,

家裡的東西隨便拿哈(有點引狼入室的感覺)

友元可以是乙個函式,該函式被稱為友元函式;友元也可以是乙個類,該類被稱為友元類,在這種情況下,整個類及其所有成員都是友元。

如果要宣告函式為乙個類的友元,需要在類定義中該函式原型前使用關鍵字friend

#include using namespace std;

class box

;class bigbox

};// 成員函式定義

void box::setwidth(double wid)

// 請注意:printwidth() 不是任何類的成員函式

void printwidth(box box)

// 程式的主函式

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

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

C 物件導向 友元函式

1.友元可以是函式 友元函式 也可以是乙個類 友元類 使用時在定義b時的public新增 全域性 friend void func 友元類b的 friend class a a的成員函式 friend void a func 其中函式類又分為全域性函式和成員函式 2.全域性函式做友元時,全域性函式的...

C 物件導向 友元

友元 友元函式 友元類 三種友元 普通函式 非成員函式 類 類的成員函式 include include using namespace std class screen 列表初始化建立建構函式 double area const private std string contents 內容 ind...