C 基礎知識(友元)

2021-08-22 19:32:07 字數 1442 閱讀 8505

友元——普通函式中宣告的物件可以呼叫類中的私有成員函式,通過類的成員函式才可以訪問類的私有資料。

關鍵字:friend

#includeusing namespace std;

class cstu

//將fun1()宣告為類cstu的乙個友元函式,使得fun1()函式可以使用類中的私有成員或者受保護成員

friend void fun1();

};void fun1()

int main()

類內成員對於友元函式相當於public

#includeusing namespace std;

class cstu

//將fun1()宣告為類cstu的乙個友元函式,使得fun1()函式可以使用類中的私有成員

friend void fun1();

friend int main();

};void fun1()

int main()

友元類

#includeusing namespace std;

class cstu

//將fun1()宣告為類cstu的乙個友元函式,使得fun1()函式可以使用類中的私有成員

friend void fun1();

friend int main();

friend class cteach;

};class cteach

};void fun1()

int main()

使用protected成員有兩種方法:繼承和友元

使用private成員:友元

友元的特點:①不受訪問修飾符的影響,即友元函式或者友元類的訪問修飾符可以是public\protected任意一種;

②可以有多個友元。

缺點:破壞類的封裝性,不是迫不得已不使用。

介面函式

#includeusing namespace std;

class cstu

//介面函式

public:

int get()

void set()

//將fun1()宣告為類cstu的乙個友元函式,使得fun1()函式可以使用類中的私有成員

friend void fun1();

protected:

friend int main();

public:

friend class cteach;

};class cteach

};void fun1()

int main()

C 基礎知識(友元)

friend關鍵字只出現在宣告處 其他類 類成員函式 全域性函式都可宣告為友元 友元函式不是類的成員,不帶this指標 友元函式可訪問物件任意成員屬性,包括私有屬性 全域性函式做友元函式 全域性函式寫到 類中做宣告 並且前面加上關鍵字 friend define crt secure no warn...

C 基礎 友元

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

C 基礎 友元

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