友元函式的幾點注意事項和例項

2021-06-20 21:00:27 字數 1212 閱讀 2782

友元函式說明如下

: 1)必須在類的說明中說明友元函式,說明時以關鍵字friend開頭,後跟友元函式的函式原型,友元函式的說明可以出現在類的任何地方,包括在private和public部分; 

2)注意友元函式不是類的成員函式,所以友元函式的實現和普通函式一樣,在實現時不用"::"指示屬於哪個類,只有成員函式才使用"::"作用域符號; 

3)友元函式不能直接訪問類的成員,只能訪問物件成員,

4)友元函式可以訪問物件的私有成員,但普通函式不行; 

5)調用友元函式時,在實際引數中需要指出要訪問的物件,

6)類與類之間的友元關係不能繼承。

1、由於函式的實現與呼叫和普通函式一樣,如下例項

classm

friend void show(m &obj);

private:

char name[20];

char address[20];

};void show(m&obj)//和普通函式一樣的定義

int main()

2、友元函式無論有沒有實參均可以在類內實現 

(1)有引數可以在類內實現

class m

friend void shown(m &obj)

private:

char name[20];

char address[20];

};int main()

(2)無引數也可以在類內實現

#include

using namespace std;

class m

friend void shown()//沒有引數還是有引數 在類內實現均可以

private:

char name[20];

char address[20];

};int main()

3、友元函式不能直接訪問類的非static的成員,只能訪問物件成員函式

//error c2352: 'm::p' : illegal call of non-static member function

#include

using namespace std;

class m

void p()

friend void shown()

private:

char name[20];

char address[20];

};int main()

友元成員函式使用時的注意事項

友元 的概念其實是針對於類的私有成員來說的,乙個類的由於封裝的緣故,類體中私有成員是不可以被外界訪問的,無論是繼承也好,都是無法訪問類內私有成員的。但是正是有那麼一些人,願意打破陳規破例訪問類體內的私有成員,此時 友元 的概念閃亮登場。其實我們的普通函式是可以訪問類體中的public,但是自從來了 ...

裝修的幾點注意事項

沒有裝修過的人,不知道其中的貓膩,這個有點跟農村中說的俚語有點類似,沒有生過兒子不知道逼疼。在裝修過程中有幾大注意事項 一 水電改造時,要合理布局,做到心中有數。千萬不要聽裝修的,那些人沒有乙個不黑,水電改造是裝修利潤最大的一塊。電線和管道的成本並不高,如果按照一公尺幾十的演算法,在計量時,很多人都...

主機板維修的幾點注意事項

主機板維修的幾點注意事項 隨著主機板的整合度越來越高,維修主機板的難度越來越大。主機板損壞就換主機板 是一般電腦使用者解決主機板故障的常用方法。現在,一塊主機板 在600 1000元,如果出一點小問題就棄之不用,實在太可惜。其實,有些故障不需要專門檢測裝置,也不需要高深的計算機專業知識就可以修復。下...