public 函数_Chapter18:友元函数和友元类
生活随笔
收集整理的這篇文章主要介紹了
public 函数_Chapter18:友元函数和友元类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這一章的問題從”如何暢通無阻的訪問另一個類“開始,類的屬性有private、protected、public,根據繼承權限有不同的訪問方式。但是類之間的關系不一定是繼承,有時一個類需要訪問另一個類的成員/成員函數,或者一個函數需要訪問類中的成員。于是友元(friend)機制誕生了。通常類之間的問題用友元類解決,友元函數常用在運算符重載等場景。
一、友元函數
友元函數既可以是類外函數,也可以是其他類的成員函數。將非成員函數聲明為友元函數,請看下面的例子:
#include那么,其他類的成員函數如何處理呢?
#include 注意兩點:一、先聲明了Address類,因為接下來的Home類會用到它,如果不提前聲明,編譯器會報錯。二、Address類的聲明在Home類的聲明和實現的中間,因為Home類的成員函數用到了Address類的成員,如果不能提前知道Address類的具體聲明內容,編譯器也會報錯。二、友元類
不多說,把上面的例子改一改:
#include不僅可以將一個函數聲明為一個類的“朋友”,還可以將整個類聲明為另一個類的“朋友”,這就是友元類。友元類中的所有成員函數都是另外一個類的友元函數。例如將類 B 聲明為類 A 的友元類,那么類 B 中的所有成員函數都是類 A 的友元函數,可以訪問類 A 的所有成員,包括 public、protected、private 屬性的。
關于友元,有三點需要說明:
(如有轉載請注明作者與出處,歡迎建議和討論,thanks)
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的public 函数_Chapter18:友元函数和友元类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ 协程_理解Python协程(Co
- 下一篇: set集合判断集合中是否有无元素_集合