友元函式說明如下
: 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元,如果出一點小問題就棄之不用,實在太可惜。其實,有些故障不需要專門檢測裝置,也不需要高深的計算機專業知識就可以修復。下...