友元是可以訪問類的私有成員和保護成員的外部函式。由 friend 修飾,不是本類的成員函式,但是在它的函式體中可以通過物件名訪問本類的私有和保護成員。
友元關係不可傳遞,且是單向的。
友元函式:宣告為友元的一般函式或是另乙個類的成員函式;
友元類:友元類的所有成員函式都是某個類的友元函式。應用場景較少。
1、友元函式
應用於運算子過載多一些。
#include #includeusing
namespace
std;
//友元函式舉例
class
point
int getx()
int gety()
friend
float fdist(point &a, point &b);
private
:
intx, y;
};//
友元函式的實現
float fdist(point &p1, point &p2)
void
main()
2、友元類
應用較少,了解即可。
#include usingnamespace
std;
class
a
intgeta()
private
:
inta, b;
};void modifya(a *pa, int
_a)//
友元類使用場景較少
class
b
void
printb()
private
: a aobject;
};void
main()
C (十四)友元函式和友元類
在c 中,私有成員只能在類的成員函式內部訪問,如果想在別處訪問物件的私有成員,只能通過類提供的介面 成員函式 間接地進行。這固然能夠帶來資料隱藏的好處,利於將來程式的擴充,但也會增加程式書寫的麻煩。比如 你自己的臥室,除了你的家人可以 參觀 訪問外,你可以讓一些信任的好友進入你的臥室,對他們公開一些...
友元 友元函式 友元類和友元成員函式 C
有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...
友元 友元函式 友元類和友元成員函式 C
有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...