C (三十四) 友元函式 友元類

2022-07-13 05:12:14 字數 1049 閱讀 7582

友元是可以訪問類的私有成員和保護成員的外部函式。由 friend 修飾,不是本類的成員函式,但是在它的函式體中可以通過物件名訪問本類的私有和保護成員。

友元關係不可傳遞,且是單向的。

友元函式:宣告為友元的一般函式或是另乙個類的成員函式;

友元類:友元類的所有成員函式都是某個類的友元函式。應用場景較少。

1、友元函式

應用於運算子過載多一些。

#include #include 

using

namespace

std;

//友元函式舉例

class

point

int getx()

int gety()

friend

float fdist(point &a, point &b);

private

:

intx, y;

};//

友元函式的實現

float fdist(point &p1, point &p2)

void

main()

2、友元類

應用較少,了解即可。

#include using

namespace

std;

class

a

intgeta()

private

:

inta, b;

};void modifya(a *pa, int

_a)//

友元類使用場景較少

class

b

void

printb()

private

: a aobject;

};void

main()

C (十四)友元函式和友元類

在c 中,私有成員只能在類的成員函式內部訪問,如果想在別處訪問物件的私有成員,只能通過類提供的介面 成員函式 間接地進行。這固然能夠帶來資料隱藏的好處,利於將來程式的擴充,但也會增加程式書寫的麻煩。比如 你自己的臥室,除了你的家人可以 參觀 訪問外,你可以讓一些信任的好友進入你的臥室,對他們公開一些...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...