實際工程開發逐漸被遺棄;
什麼是友元?
- 友元是c++ 中的一種關係;
-友元關係發生在函式與類之間或者類與類之間;
-友元是單項的,不能傳遞。
函式————》(友元)————》class;
友元的用法:
-在類中以friend關鍵字宣告友元
-類的友元可以是其它類或者具體的函式
-友元不是類的一部分
-友元不受類中訪問級別的限制
-友元可以直接訪問具體類中的所以的成員
友元不受的priv限制,可以訪問全體成員,它是外部的實體,不受類的限制
-在類中,用friend關鍵字對函式或類進行宣告。
1 #include 2 #include 34class
point514
15double
getx()
1619
20double
gety()
2124
25 friend double func(point& p1, point&p2);
26};
2728
double func(point& p1, point&p2)
2939
40int
main()
41
友元的尷尬能力:
-友元是為了兼顧c的高效而誕生的;
-友元直接破壞了物件導向的封裝性;
-友元在實際產品中的高效是得不償失的;
-友元在現代工程中已經被逐漸遺棄。
注意事項:
-友元不具有傳遞性;
-類的友元可以是其他類的成員函式
-類的友元可以是某個完整的類;
-所有的成員函式都是友元。
友元不具有傳遞性.cpp:
1 #include 23class
classc411
12 friend class
classb;
13};
1415
class
classb
1623
24void getclasscname(classc&c)
2528
29 friend class
classa;
30};
3132
class
classa
3340
41void getclassbname(classb&b)
4245
/*46
void getclasscname(classc& c)
4750
*/51
};52
53int
main()
54
28 友元的尷尬能力
上一課 twophasecons ret new twophasecons 靜態成員內部,直接訪問類的私有成員?此處呼叫的是建構函式,不是普通成員變數。友元是c 中的一種關係,發生在函式與類之間或者類與類之間。友元關係是單項的,不能傳遞。在類中以friend關鍵字宣告友元,類的友元可以是其他類或者具...
27 友元的尷尬能力
1 友元的概念 2 友元的用法 3 友元的語法 class test void func test t 在這個程式中,函式 func 是test 類的友元,因此,函式就可以直接訪問類中的所有成員 分析 我們定義乙個 func 函式來計算兩個物件座標的距離。如果我們不把 func 函式定義為test ...
28,友元的尷尬能力
1 友元是c 中的一種關係 2 友元關係發生在函式與類之間或類與類之間 3 友元關係是單項的,不能傳遞 classpointvoid func point p 全域性函式,引數是類的引用,接受乙個ponit物件p作為引數 通過引數物件名p,可以訪問point類內的任何成員!1 在類中以friend關...