C 學習 類中的友元函式

2021-10-12 10:06:14 字數 585 閱讀 4592

如果類有一套完整的取值函式,可以利用取值函式定義乙個普通函式來測試相等性或其他依賴私有成員變數的計算。這樣雖然能間接訪問私有成員變數但效率堪憂。

類的友元函式不是這個類的成員函式,而是乙個「友好」的函式,他能像成員函式那樣訪問類的私有成員。在類定義中宣告友元函式只需在函式宣告前新增關鍵字friend,放在public區、private區均可。.注意,友元函式不是成員函式,它本質上仍然是普通函式,在繼承中,友元函式不被繼承。故,友元函式在定義時,無需包括限定符 「類名稱::」,呼叫時也不用原點操作符。

如果類中已有取值和賦值函式,將函式宣告為友元函式唯一的理由是簡化函式定義,提高效率。

是否將函式宣告為友元函式,一般遵循以下兩個原則

1、函式要執行的任務只涉及乙個物件,就使用成員函式。

2、要執行的任務涉及多個物件,就使用非成員(友元)函式。

乙個更準確但難以理解的規則是:如果任務與單個物件密切相關,就使用成員函式;如果涉及到多個物件,而且物件被均勻的使用,就使用非成員函式。

C 中的 友元函式 友元類

1.友元函式的簡單介紹 1.1為什麼要使用友元函式 在實現類之間資料共享時,減少系統開銷,提高效率。如果類a中的函式要訪問類b中的成員 例如 智慧型指標類的實現 那麼類a中該函式要是類b的友元函式。具體來說 為了 使其他類的成員函式直接訪問該類的私有變數。即 允許外面的類或函式去訪問類的私有變數和保...

C 友元函式和友元類學習

c 中的友元為封裝隱藏這堵不透明的牆開了乙個小孔,外界可以通過這個小孔窺視內部的秘密。友元的正確使用能提高程式的執行效率,但同時也破壞了類的封裝性和資料的隱藏性,導致程式可維護性變差。友元函式需要在類的定義中加以宣告,宣告時只需在友元的名稱前加上關鍵字friend,其格式如下 friend 型別 函...

C 學習(6)(友元函式友元類)

友元函式 在類內部以friend開頭宣告函式。一定程度上破了封裝性 友元類 a類裡寫乙個friendb,相當於a把家鑰匙給b了,b可以進a家,但是沒有對稱性,除非b類也寫frienda,b也給a鑰匙。另外也沒有傳遞性。include using namespace std class rectang...