有些情況下,允許非成員函式訪問類中的私有成員,但又阻止一般的訪問,這種情況,就需要用到友元。
使用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 ...