C 中的友元函式

2021-09-24 13:20:50 字數 706 閱讀 8545

/*

採用類的機制後實現了資料的隱藏與封裝,類的資料成員一般定義為私有成

員,成員函式一般定義為公有的,依此提供類與外界間的通訊介面。但是,有時需

要定義一些函式,這些函式不是類的一部分,但又需要頻繁地訪問類的資料成員,

這時可以將這些函式定義為該函式的友元函式。除了友元函式外,還有友元類,

兩者統稱為友元。友元的作用是提高了程式的執行效率(即減少了型別檢查和

安全性檢查等都需要時間開銷),但它破壞了類的封性和隱藏性,使得非成員函

數可以訪問類的私有成員。

*/

#includeusing namespace std;

class point

int getx()

int gety()

private:

int mx;

int my;

};double pointdistance(point &p1, point &p2)

int main(void) {

point b(2, 3);

point a(4, 6);

cout << "兩點間的距離為:" << pointdistance(a, b)

<< endl;

return 0;

程式結果為如下:

兩點間的距離為:3.60555

請按任意鍵繼續. . .

C 中的 友元函式 友元類

1.友元函式的簡單介紹 1.1為什麼要使用友元函式 在實現類之間資料共享時,減少系統開銷,提高效率。如果類a中的函式要訪問類b中的成員 例如 智慧型指標類的實現 那麼類a中該函式要是類b的友元函式。具體來說 為了 使其他類的成員函式直接訪問該類的私有變數。即 允許外面的類或函式去訪問類的私有變數和保...

C 中的友元函式和友元

在c 中類具有封裝的隱蔽性,由於語言特性,只有成員函式才能訪問私有成員,非成員函式只能訪問類中的公有成員,可是有時候我們需要非成員函式呼叫私有成員,這個時候要是將私有成員定義為公有的又會破壞c 的封裝,為了解決上述問題,我們提出了友元的概念 友元分為友元函式和友元類,友元函式就是非成員函式可是當我們...

C 中的友元函式和友元類

結合著類的特性和類中一般成員函式,我們可以這樣理解 類具有封裝和資訊隱藏的特性。只有類的成員函式才能訪問類的私有成員,程式中的其他函式是無法訪問私有成員的。非成員函式可以訪問類中的公有成員,但是如果將資料成員都定義為公有的,這又破壞了隱藏的特性。另外,應該看到在某些情況下,特別是在對某些成員函式多次...