友元的定義
一般在c++中, 類都私有成員是不允許其他類訪問的,但是c++中可以通過友元來訪問類的私有成員。c++中, 可以把全局函數或者類定義爲類的友元
void Print(int& a);
class FriendClassTest
{
// 將全局函數申明爲友元;
Friend void Print(int& a);
// 將外部類申明爲友元
friend class show;
private:
int m_a;
};
函數Print 和類show只是類FriendClassTest的友元而非成員; 友元的位置一般是比較自由的,不受public,private限制,一般放在大括號中最前面
友元的權利
可以無限制的訪問該類的所有成員。友元都關係是單向的。
友元的作用
友元一般比較少用,它破壞了類的封閉性;有一種場景是會用到類的友元的;
假如有個類的成員, 只想讓指定的非繼承類或全區函數訪問,而不想讓其他類訪問,則可以把該類的成員定義爲私有成員,然後把允許訪問該私有成員的變量定義爲該類的友元。當然也可以是多個類,封裝在一個模塊中,類之間互相定義爲友元,相互操作成員。