友元函式 友元類 友元成員函式

2021-10-10 18:59:17 字數 1580 閱讀 6752

有些情況下,允許非成員函式訪問類中的私有成員,但又阻止一般的訪問,這種情況,就需要用到友元

使用friend宣告友元,友元的定義只能在的內部

有些情況下,全域性函式需要訪問類中的私有成員,這種函式叫友元函式;如:客人可以訪問客廳,但一般客人不可以去主人臥室,關係較好的朋友才能訪問私有的臥室,這時就要用到友元,友元的關鍵字為friend

示例

#include

#include

using

namespace std;

/*********1、函式做友元**********/

class

building

string m_sittingroom;

//客廳

private

: string m_bedroom;

//臥室};

void

func

(building *build)

void

test01()

intmain

(void

)

乙個類中的成員函式訪問另外乙個類中的私有成員,這時需要用到友元類

示例

#include

#include

using

namespace std;

class

building

;class

visitor

;class

building

;building::

building()

visitor::

visitor()

//建構函式

void visitor::

visit1()

void

test02()

intmain

(void

)

成員函式作為其他類的友元,可以訪問類的私有成員,此函式稱為友元成員函式。

#include

#include

using

namespace std;

class

building

;class

visitor

;class

building

;building::

building()

//建構函式

visitor::

visitor()

//建構函式

void visitor::

visit()

void

test03()

intmain

(void

)

友元函式 友元類 友元成員函式

注意友元成員函式定義的3個步驟 include include include using namespace std class a class c class a class b void c display const a a 3.最後定義display,此時才可以使用a的私有成員 void ...

友元函式 友元類 友元成員函式

一般來說,類內的私有資料是對外不可見的,但在有些情況下,我們需要在類外對該類的私有資料進行訪問,這就需要用到一種新技術 友元 friend 即在宣告前新增關鍵字friend。友元關係是單向的,即如果a是b的友元,但b不一定是a的友元 友元關係無傳遞性,即如果a是b的友元,b是c的友元,但a不一定是c...

友元函式,友元類,友元成員函式

一 友元函式 class a1private int i void k a1 a 上面這段 當中,由於函式k想訪問類a1的成員變數i,但是由於i是private屬性,所以編譯不能通過。解決辦法 class a1friend void k a1 a private int i void k a1 a ...