通常情況下,我們不能隨意使用類內部的成員。但在某一些情況下,我們又需要去訪問類成員。將函式或類定義成友元,就可以使用類的成員。不管是public
、protected
還是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...