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