C 中的友元的體會

2021-06-25 11:13:02 字數 976 閱讀 5023

友元:假設a中宣告了b是我的朋友,則在b內就可以使用了我(a)的一切資料,包括private型別資料。

友元的出現破壞了類的封裝和隱藏性。

c++中的友元分為:友元函式和友元類

1. 友元函式:

在類中宣告,在類外定義:

class a

private:

friend

void print(aa);

int m_i; };

void print(a a)

也可以在類中定義:

class a

private:

friend

void print(aa)

int m_i; };

注意:

1> 友元函式只是普通的外部函式,它不屬於任何類。所以即使在類內定義它也不能直接訪問類中的東西,必須通過物件訪問。

2> 友元函式在類中的位置是任意的。在private和在public是沒有區別的。

2. 友元類

當類a中宣告類b是我的友元時,則在類b內,所有成員函式都是類a的友元函式,也就是說所有成員函式都可以訪問類a的一切資料。(同理通過a的物件訪問)

class a

private:

friend

class b;

int m_i; };

class b

}; 需要注意的幾點:

(1)

友元關係不能被繼承。

(2) 

友元關係是單向的,不具有交換性。若類b是類

a的友元,類

a不一定是類

b的友元,要看在類中是否有相應的宣告。

(3) 

友元關係不具有傳遞性。若類b是類

a的友元,類c是

b的友元,類

c不一定是類

a的友元,同樣要看類中是否有相應的申明

其實友元就可以翻譯成朋友更好理解。同英語friend。

C 中的友元

乙個類的私有成員除了它的成員函式之外是不能被其他類或函式所訪問的。為了能構使其他類或函式能訪問類的私有成員,我們可以使其他類或函式成為該類的友元。如果想把乙個類或函式作為該類的友元,則只需在在該類或函式的宣告前加個friend,注意帶有friend的宣告必須在類的內部 如前言所述,要想將乙個函式宣告...

C 中的友元

您知道,c 控制對類物件私有部分的訪問。通常,公有類方法提供唯一的訪問途徑,但是有時候這種限制太嚴格,以致於不適合特定的程式設計問題。在這種情況下,c 提供了另外一種形式的訪問許可權 友元。友元有3種 通過讓函式成為類的友元,可以賦予該函式與類的成員函式相同的訪問許可權。下面介紹友元函式。在前面的t...

c 中的友元

友元是什麼 在類中,某些私有屬性也想讓類外的一些特殊函式或者類進行訪問,就需要用到友元的技術。友元的目的,就是讓乙個函式或者類可以訪問另乙個類的私有成員屬性。friend關鍵字 1.全域性函式做友元 include using namespace std include struct person ...