C 學習筆記 類的朋友

2021-08-08 06:30:36 字數 553 閱讀 2888

在類a中,用friend關鍵字可以將乙個全域性函式宣告為該類的「朋友」。也可以將另乙個類宣告為該類的朋友。

class object

{//將全域性函式print宣告為「朋友」

friend void print(object *p);

//將類something宣告為「朋友」

friend class something;

];原則上說,該函式、類只是這個類的「朋友」,而非「成員」。

(1)friend宣告語句:位置自由,一般放在類體大括號的最前頭。

(2)朋友擁有的權利:

可以無限地訪問該類的所有成員,不受protected/private的限制。

注意:朋友的關係是單向的,something類可以自由訪問object類,但反過來不成立。

負面作用:friend是不常用的語句,它破壞了訪問修飾符的作用,對類的封裝構成威脅。

正面作用:可能應用的場景:在封裝乙個模組時,模組中有多個類,那麼他們之間可以相互宣告為朋友以便操作(他們是一夥的)。也就是說,模組內部的類都是朋友,而外部呼叫者不是朋友、受訪問修飾符的限制 

c 學習筆記 類

c 學習筆記 類 refer c primer 在c 中,用類來定義自己的抽象資料結構。在乙個原始檔中,乙個類只能被定義一次 宣告可以多次 如果在多個檔案中定義乙個類,那麼每個檔案定義必須完全相同。可以宣告乙個類而不定義它。這個宣告被稱為向前宣告,是乙個不完全型別 已知其為乙個型別,但不知道包含哪些...

c 學習筆記 類

物件的定義 類名 物件名 如stock joe 物件使用成員函式 物件名.成員函式名 如joe.show 呼叫成員函式時,成員函式使用的是呼叫它的物件的資料成員。類所建立的每個物件都有自己的儲存空間,儲存其內部變數和類成員。但每乙個物件都共享類的同一組方法。類的建構函式和析構函式 建構函式是為了在構...

C 類 學習筆記

類的深入刨析 i 建構函式 析構函式 拷貝建構函式 何時呼叫建構函式和析構函式 預設的逐個成員賦值 類的深入刨析 ii 運算子過載字串和陣列物件 繼承多型性 成員訪問說明符public private和protected類的作用域和類成員的訪問 物件的名稱或者物件的引用要結合圓點成員選擇運算子 來訪...