friend class – 朋友類別,或稱友元類
可讓朋友類別使用自己的私有成員
但 friend 的關係是無法被繼承的
衍生類別可以動點手腳來達成"偽" friend (virtual class member)
先來看一個簡單的 friend 關係
// 宣告類別 class CShared; class CFriend; // 定義 { // 宣告 CFriend 為朋友類別 friend class CFriend; private: class CFriend public: |
OK~
那麼如果 CFriend 的衍生類別也需要得知 CShared 私有成員的話
就只需要在 CFriend 裡定義一個函數來對 CShared 私有成員做處理即可
class CFriend { protected: CShared _SharedClass; public: void Show() { cout << _SharedClass._iii << endl; } protected: int GetIII( ) { return _SharedClass._iii; } } class CAdv : public CFriend void Show( ) { cout << GetIII() << endl; } } |
OK~
就是這樣啦!
雖然目前還沒有要用到,或許哪天會用到吧(遠望)
原文章裡面有提到實際應用的範例,可以去看看~
來源: 创意组合——friend class + virtual class member
簡單明瞭!謝謝你!^^
很高興能對你有幫助^^