c 學習筆記(七) 友元函式和友元類

2021-07-06 02:45:07 字數 1343 閱讀 5350

友員用關鍵字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開始,它只能出現在類定義的內部,友...