友元函式和友元成員函式

2021-09-25 06:49:38 字數 638 閱讀 6095

#include

using namespace std;

class boy;//提前宣告,否則下面的函式宣告沒有辦法定義:

class girl

~girl()

void print()

void girl(boy & x); //此定義必不可少;

};class boy

~boy()

void print()

friend void girl::girl(boy & x);			//friend修飾的函式放在**,所在的類就是可供分享成員資料及其方法函式的類:
void girl::girl(boy & x) //功能函式的放法很有講究,它總是放在放友元函式宣告的類的最下面,將訪問類放在最上面

int main()

{girl b1(18); //類girl中建立成員

boy a1(21); //類boy中建立成員

b1.girl(a1); //類boy中的資源可為類girl使用,使用時可呼叫介面函式

return 0;
小結:友元函式和友元成員函式及友元類會無情的破壞類的封裝性,這使得類的成員訪問許可權變得形同虛設,因此還是少用為妙!!!

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...

C 友元 友元函式 友元類和友元成員函式

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...