C 學習系列(6) 類和物件(四 友元)

2021-10-09 01:33:47 字數 1476 閱讀 4943

④:友元

生活中你的家有客廳(public),有你的臥室(private)

客廳所有來的客人都可以進去,但是你的臥室是私有的,只有自己能進去,但是,你也可以允許你的好閨蜜和好**進去。

在程式裡,有些私有屬性,也想讓類外特殊的一些函式或者類進行訪問,就需要用到友元的技術

友元的目的是為了讓乙個函式或者類訪問另乙個類中私有成員

友元的關鍵字為 friend

友元的三種實現

4.1全域性函式做友元

#include

#include

using

namespace std;

//建築物類

class

building

string m_sittingroom;

//客廳

private

: string m_bedroom;

//臥室};

//全域性函式

void

goodgay

(building*building)

void

test01()

intmain()

4.2類做友元

#include

#include

using

namespace std;

//類做友元

class

building

;class

goodgay

;class

building

;//類外寫成員函式

building::

building()

goodgay::

goodgay()

void goodgay::

visit()

void

test01()

intmain()

4.3成員函式做友元

#include

#include

using

namespace std;

class

building

;class

goodgay

;class

building

;//類外實現 成員函式

building::

building()

goodgay::

goodgay()

void goodgay::

visit1()

void goodgay::

visit2()

void

test01()

intmain()

C 學習(6)(友元函式友元類)

友元函式 在類內部以friend開頭宣告函式。一定程度上破了封裝性 友元類 a類裡寫乙個friendb,相當於a把家鑰匙給b了,b可以進a家,但是沒有對稱性,除非b類也寫frienda,b也給a鑰匙。另外也沒有傳遞性。include using namespace std class rectang...

C 物件導向程式設計(四)友元函式和友元類

友元函式 宣告 friend 返回型別 函式名 形參表 說明 友元函式可以是另乙個類的成員函式,也可以是不屬於任何類的一般的函式。友元是乙個普通的函式,它不是本類的成員函式。private public protected 訪問許可權與友元函式宣告無關。友元也可以是整個類。稱為友元類。格式 clas...

C 類和物件 友元

全域性函式做友元可以訪問另乙個類中的私有成員,寫法就是把全域性函式複製貼上放到類中,前面再加乙個關鍵字friend include include using namespace std class building 房屋類 public string m livingroom 客廳 private...