一:友元函式
class
a1private
:int i;};
void
k(a1 a)
上面這段**當中,由於函式k想訪問類a1的成員變數i,但是由於i是private屬性,所以編譯不能通過。
解決辦法:
class
a1friend
void
k(a1 a)
;private
:int i;};
void
k(a1 a)
二:友元類
classa;
classb;
classb;
classa;
friend
classb;
private
:int m_i;};
voidb::
func()
//類b可以訪問類a的所有成員變數
三:友元成員函式
在上面的例子當中,乙個類可以訪問另乙個類的其它所有成員變數,這是不是有些霸道了?
所以,友元成員函式來了,通過宣告友元成員函式,
這樣,就只有這個函式能訪問另乙個類的private成員。
classb;
classa;
//friend class b;
friend
voidb::
fun();
private
:int m_i;};
voidb::
func()
voidb::
fun(
)
友元函式 友元類 友元成員函式
注意友元成員函式定義的3個步驟 include include include using namespace std class a class c class a class b void c display const a a 3.最後定義display,此時才可以使用a的私有成員 void ...
友元函式 友元類 友元成員函式
一般來說,類內的私有資料是對外不可見的,但在有些情況下,我們需要在類外對該類的私有資料進行訪問,這就需要用到一種新技術 友元 friend 即在宣告前新增關鍵字friend。友元關係是單向的,即如果a是b的友元,但b不一定是a的友元 友元關係無傳遞性,即如果a是b的友元,b是c的友元,但a不一定是c...
友元函式 友元類 友元成員函式
有些情況下,允許非成員函式訪問類中的私有成員,但又阻止一般的訪問,這種情況,就需要用到友元。使用friend宣告友元,友元的定義只能在類的內部 有些情況下,全域性函式需要訪問類中的私有成員,這種函式叫友元函式 如 客人可以訪問客廳,但一般客人不可以去主人臥室,關係較好的朋友才能訪問私有的臥室,這時就...