C 基礎 友元

2021-08-07 05:03:31 字數 1173 閱讀 3812

友元概念

友元函式

定義:

friend《資料型別》《友元函式名》(引數列表)
#includeusing namespace std;

//定義友元函式

class rectangle

friend double area(rectangle &rec); //定義友元

};//友元實現

double area(rectangle &rec)

int main()

; girl::girl(char *n,int num)

girl::~girl()

class boy

; boy::boy(char *n,int num)

boy:: ~boy()

void girl::display(boy &b)

; girl::girl(char *n,int num)

girl::~girl()

class boy

; boy::boy(char *n,int num)

boy:: ~boy()

void girl::display(boy &b)

{ cout<

友元關係是單向的,不具有交換性。若類b是類a的友元,類a不一定是類b的友元,要看在類中是否有相應的宣告。

友元關係不具有傳遞性。若類b是類a的友元,類c是b的友元,類c不一定是類a的友元,同樣要看類中是否有相應的申明

友元可以訪問類的私有成員。

只能出現在類定義內部,友元宣告可以在類中的任何地方,一般放在類定義的開始或結尾。

友元可以是普通的非成員函式,或前面定義的其他類的成員函式,或整個類。

類必須將過載函式集中每乙個希望設為友元的函式都宣告為友元。

友元關係不能繼承,基類的友元對派生類的成員沒有特殊的訪問許可權。如果基類被授予友元關係,則只有基類具有特殊的訪問許可權。該基類的派生類不能訪問授予友元關係的類。

C 基礎 友元

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

C 基礎(12)友元

類的主要目的之一是實現資訊的隱藏與封裝,即類的私有成員在類的外部不可見,不能直接進行訪問,只能通過對外的介面函式間接地進行訪問。但這樣往往會降低對私有資料成員的訪問效率。有時候,某些特殊的函式或類需要對這些私有成員進行直接訪問,這時,就需要打破類的封裝。這種能夠對類的私有成員直接進行訪問的外部類或外...

基礎 C 的友元

在程式裡,有些私有屬性 也想讓類外特殊的一些函式或者類進行訪問,就需要用到友元的技術 友元的目的就是讓乙個函式或者類 訪問另乙個類中私有成員 友元的關鍵字為 friend 友元的三種實現 全域性函式做友元 類做友元 成員函式做友元 class building public string m sit...