④:友元
生活中你的家有客廳(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...