需要友元的原因及使用

2021-09-09 00:24:31 字數 546 閱讀 6345

有時候,普通函式需要直接訪問乙個類的保護或私有資料成員。如果沒有友元機制,則只能將類的資料成員宣告為公共的,從而,任何函式都可以無約束的訪問它。

普通函式需要直接訪問類的保護或私有資料成員的原因主要是為提高效率。

在類裡宣告乙個普通函式,標上關鍵字friend,就成了該類的友元,可以訪問該類的一切成員。

需要友元的另乙個原因是為了方便過載操作符的使用。

友元函式不是成員函式,它是類的朋友,因而能夠訪問類的全部成員。在類的內部,只能宣告它的函式原型,加上friend關鍵字。友元宣告的位置可以在類的任何部位,既可在public區,也可在protected區,意義完全一樣。友元函式定義則在類的外部,一般與類的成員函式定義放在一起。因為類重用時,一般友元是一起提供的。

乙個類的成員函式可以使另乙個類的友元。

整個類可以是另乙個類的友元,該友元成為友類。友類的每個成員函式都可訪問另乙個類中的保護或私有資料成員。

友元的作用主要是為了提高效率和方便程式設計。但隨著硬體效能的提高,友元的這點作用是微不足道的。相反,友元破壞了類的整體操作性,也破壞了類的封裝,所以在使用時,要權衡利弊。

為什麼需要友元與友元的缺點

通常對於普通函式來說,要訪問類的保護成員是不可能的,如果想這麼做那麼必須把類的成員都生命成為public 共用的 然而這做帶來的問題遍是任何外部函式都可以毫無約束的訪問它操作它,c 利用friend修飾符,可以讓一些你設定的函式能夠對這些保護資料進行操作,避免把類成員全部設定成public,最大限度...

這是需要友元函式

因為顯示器類儲存的朋友,任何顯示的成員使用的儲存類物件可以直接訪問儲存的私有成員。這是乙個簡單的程式,顯示使用上面的類 1 2 3 4 5 6 7 8 9 intmain storage cstorage 5,6.7 display cdisplay false cdisplay.displayit...

友元函式及友元類詳解

在 c 中,乙個類中可以有 public protected private 三種屬性的成員,通過物件可以訪問 public 成員,只有本類中的函式可以訪問本類的 private 成員。現在,我們來介紹一種例外情況 友元 friend 借助友元 friend 可以使得其他類中的成員函式以及全域性範圍...