C 友元介紹

2021-10-10 13:49:14 字數 1097 閱讀 3536

友元分為:友元函式和友元類

友元提供了一種突破封裝的方式,有時提供了便利。但是友元會增加耦合度,破壞了封裝。

友元函式可以直接訪問類的私有成員,它是定義在類外部的普通函式,不屬於任何類,但需要在類的內部聲

明,宣告時需要加friend關鍵字。

class

date

private

:int _year;

int _month;

int _day;};

ostream&

operator

<<

(ostream& _cout,

const date& d)

istream&

operator

>>

(istream& _cin, date& d)

intmain()

1.友元函式可訪問類的私有和保護成員,但不是類的成員函式

2.友元函式不能用const修飾

3.友元函式可以在類定義的任何地方宣告,不受類訪問限定符限制

4.乙個函式可以是多個類的友元函式

5.友元函式的呼叫與普通函式的呼叫和原理相同

友元類的所有成員函式都可以是另乙個類的友元函式,都可以訪問另乙個類中的非公有成員。

友元關係是單向的,不具有交換性。

友元關係不能傳遞->如果b是a的友元,c是b的友元,則不能說明c時a的友元。

class

date

;// 前置宣告

class

time

private

:int _hour;

int _minute;

int _second;};

class

date

void

settimeofdate

(int hour,

int minute,

int second)

private

:int _year;

int _month;

int _day;

time _t;

};

C 成員許可權及友元介紹

對於c 類,可以定義三種不同訪問控制許可權的成員。這三種分別是public公有型別,private私有型別,protected保護型別。友元介紹 類可以允許其他函式或者類訪問它的非公有成員,方法是令其成為友元 class count friend void fn1 count obj 宣告友元函式 ...

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

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

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

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