C 筆記(十) C 友元

2021-10-03 01:42:27 字數 655 閱讀 7206

通常情況下,我們不能隨意使用類內部的成員。但在某一些情況下,我們又需要去訪問類成員。將函式或類定義成友元,就可以使用類的成員。不管是publicprotected還是private,友元都可以使用。雖然友元的宣告在類內部,但友元不屬於類成員。

友元可以是某乙個類、類成員函式、全域性函式;友元是讓其它不屬於本類的成員(其它類、其它類成員函式、全域性函式)成為類的成員而具備了本類成員的屬性;

友元的格式:

friend void test1(a &a);  //友元函式

friend class b; //友元類

friend void c::test3(a &a);//友元類成員函式

例:

#include #include class a;

class c

};class a

~a()

private:

int val;

std::string s;

};class b

};void test1(a &a)

int main(int argc, char* ar**)

使用友元的注意事項:

c 筆記 友元

類可以允許其他類或者函式訪問它的非公有成員,方法是令其他類或者函式成為它的友元。如果類想把乙個函式作為它的友元,只需要增加一條以friend關鍵字開始的函式宣告語句即可 class data data介面的非成員組成部分的宣告 data add std istream read 友元宣告只能出現在類...

c 友元(筆記)

在程式裡,有些私有屬性,想讓類外特殊的一些函式或類進行訪問,這就需要用到友元的技術 友元的目的就是讓乙個函式或者類訪問另乙個類中私有成員 友元關鍵字 friend 友元的三種實現 class building public string m sittingroom private string m ...

C 筆記 繼承,友元

一 友元關係 友元關係不可繼承,base是基類,derive是派生類,f是base的友元,這麼說來,f不能訪問derive的private成員 是無誤的 但是還是不夠準確,假設base有乙個privata的virtual函式func derive繼承並重寫了此函式,那麼在基類的友元f中有如下 看似f...