友員用關鍵字friend宣告。
友員是對類操作的一種輔助手段。
乙個類的友員可以訪問該類各種性質的成員。
一、友元函式
1、友員函式通過物件引數訪問私有資料成員
2、成員函式通過this指標在物件上操作
友元函式 vs 成員函式:
lass a
;void friendfun( a * ptr , int x )
void a:: memberfun( int x )
void test()
用友員函式計算兩點之間的距離 :
class point
double getx()
double gety()
friend double distance ( point & a, point & b ) ;
private: double x, y ;
} ;double distance(point & a, point & b )
void main()
二、友員類
1、若f類是a類的友員類,則f類的所有成員函式都是a類的友員函式
2、友員類通常設計為一種對資料操作或類之間傳遞訊息的輔助類
class a
; private :
int x ;
} ;//b類沒有資料成員僅提供對a類的操作
class b
//通過類成員訪問a類的私有資料成員
void display () //通過類成員呼叫a類的成員函式
//通過物件引數訪問友員的成員
void set (a & aobject , int i)
void display (a & aobject )
private :
a aobject ; //類 b 的 a 類資料成員
} ;void main()
友元 友元函式 友元類和友元成員函式 C
有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...
友元 友元函式 友元類和友元成員函式 C
有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...
C 友元 友元函式 友元類和友元成員函式
有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...