友元的尷尬能力

2022-02-04 20:50:06 字數 1683 閱讀 9468

實際工程開發逐漸被遺棄;

什麼是友元?

- 友元是c++ 中的一種關係;

-友元關係發生在函式與類之間或者類與類之間;

-友元是單項的,不能傳遞。

函式————》(友元)————》class;

友元的用法:

-在類中以friend關鍵字宣告友元

-類的友元可以是其它類或者具體的函式

-友元不是類的一部分

-友元不受類中訪問級別的限制

-友元可以直接訪問具體類中的所以的成員

友元不受的priv限制,可以訪問全體成員,它是外部的實體,不受類的限制

-在類中,用friend關鍵字對函式進行宣告。

1 #include 2 #include 3

4class

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 2

3class

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關...