C 中的友元

2021-07-04 23:42:02 字數 797 閱讀 3868

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

如前言所述,要想將乙個函式宣告為乙個類的友元函式,只需在其宣告前加個friend

事例

#include

class friend

friend

void print(const friend &f);

};int main(int argc,char **argv)

void print(const friend &f)

假如有a,b倆個類,我們先定義類a,在類a中宣告類b並在宣告前加friend那麼類b就是類a的友員了,類b的成員函式就可以訪問類a的私有成員了,具體例項如下

#include

class a

friend

class b;

private:

int num;

};class b

};int main(int argc,char **argv)

(1)友員可以宣告在類內的任意位置

(2)類的成員函式可以單獨作為另乙個類的友元

(3)友元的宣告僅僅是指定了訪問許可權,而非真正意義上的宣告,如果我們希望類的使用者能夠調用友元函式的話最好在類的外部在宣告一次該函式,當然許多編譯器並未強制限制友元函式必須在使用之前還需要宣告

C 中的 友元函式 友元類

1.友元函式的簡單介紹 1.1為什麼要使用友元函式 在實現類之間資料共享時,減少系統開銷,提高效率。如果類a中的函式要訪問類b中的成員 例如 智慧型指標類的實現 那麼類a中該函式要是類b的友元函式。具體來說 為了 使其他類的成員函式直接訪問該類的私有變數。即 允許外面的類或函式去訪問類的私有變數和保...

C 中的友元函式和友元

在c 中類具有封裝的隱蔽性,由於語言特性,只有成員函式才能訪問私有成員,非成員函式只能訪問類中的公有成員,可是有時候我們需要非成員函式呼叫私有成員,這個時候要是將私有成員定義為公有的又會破壞c 的封裝,為了解決上述問題,我們提出了友元的概念 友元分為友元函式和友元類,友元函式就是非成員函式可是當我們...

C 中的友元

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