C 友元的學習與使用 友元函式 友元類

2021-10-07 17:16:10 字數 827 閱讀 3151

class person;}

;void

displayperson

(const person &p)

如上操作是不可行的,因為類外的函式沒有權力呼叫類內 private 封裝的成員變數。如果想讓類外的函式使用類內成員變數,可以通過 friend 宣告該函式為這個類的友元:

class person

; friend void

displayperson

(const person &);

// 宣告該函式為本類的友元函式};

void

displayperson

(const person &p)

友元函式可以訪問物件私有域的內容。

還可以定義乙個與某乙個類中某乙個函式存在友元的關係。在上面**的基礎上進行以下拓展:

class friend

;void

showperson

(const person &p)

friend f1;

f1.showperson

(p1)

;

然後在person類中宣告:friend void friend::showperson(const person &);

設定友元類,該友元類下的所有成員函式都可以訪問私有域的內容。

friend class friend;
注意:友元關係無法傳遞,即友元的友元不是友元。

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

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

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

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

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

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