C 基礎知識(友元)

2021-09-24 01:40:02 字數 1415 閱讀 3459

friend關鍵字只出現在宣告處

其他類、類成員函式、全域性函式都可宣告為友元

友元函式不是類的成員,不帶this指標

友元函式可訪問物件任意成員屬性,包括私有屬性

全域性函式做友元函式

全域性函式寫到 類中做宣告 並且前面加上關鍵字 friend

#define _crt_secure_no_warnings

#includeusing namespace std;

#includeclass building

public:

string m_sittingroom;

private:

string m_bedroom;

};//全域性函式 好**

void goodgay(building * building)

//友元函式 目的訪問類中的私有成員屬性

void test01()

int main(void)

整個類做友元函式

friend class 類名

[友元類注意]

友元關係不能被繼承。

友元關係是單向的,類a是類b的朋友,但類b不一定是類a的朋友。

友元關係不具有傳遞性。類b是類a的朋友,類c是類b的朋友,但類c不一定是類a的朋友。

#define _crt_secure_no_warnings

#includeusing namespace std;

#includeclass building

;class goodgay

;goodgay::goodgay()

void goodgay::visit()

building::building()

void test01()

int main()

成員函式作為友元函式

friend void goodgay::visit();

#define _crt_secure_no_warnings

#includeusing namespace std;

#include//只讓visit可以做building的好朋友 visit2不可以作為友元

class building;

class goodgay

;class building

;goodgay::goodgay()

void goodgay::visit()

void goodgay::visit2()

building::building()

void test01()

int main()

C 基礎知識(友元)

友元 普通函式中宣告的物件可以呼叫類中的私有成員函式,通過類的成員函式才可以訪問類的私有資料。關鍵字 friend includeusing namespace std class cstu 將fun1 宣告為類cstu的乙個友元函式,使得fun1 函式可以使用類中的私有成員或者受保護成員 frie...

C 基礎 友元

友元 乙個常規的成員函式宣告描述了三件在邏輯上相互不同的事情 1.該函式能訪問類宣告的私用部分 2.該函式位於類的作用域之中 3.該函式必須經由乙個物件去啟用 有乙個this指標 通過將乙個函式宣告為友元可以使它只具有第一種性質 在c 中友元 friend 函式允許在類外訪問該類中的任何成員,就象成...

C 基礎 友元

友元概念 友元函式 定義 friend 資料型別 友元函式名 引數列表 includeusing namespace std 定義友元函式 class rectangle friend double area rectangle rec 定義友元 友元實現 double area rectangle...