閱讀477 返回首頁    go 人物


解決友元類(friend class)無法繼承的問題

解決友元類(friend class)無法繼承的問題

 

友元聲明friend class是無法繼承的。舉例說明:class A聲明class B為其友元類,也就是說class A授予class B訪問class A的所有包括私有成員在內的所有成員。如果class C 繼承class B.那麼class C是不具備這種特權的。

 

 

但是如果我想在class C中訪問class A的某個私有或者保護成員函數怎麼辦?

我們可以把工作交給父類。

 

#include <iostream> using namespace std; class B; class A { friend B; public: A(){}; ~A(){} protected: void Operation(){ cout << "Hello, I am here." << endl; } private: }; class B { public: B(){}; ~B(){}; virtual void Operate() { a.Operation(); } private: A a; }; class C: public B { public: C(){} ~C(){} private: }; int main(void) { C c; c.B::Operate();//這裏顯示的調用父類的函數 }

最後更新:2017-04-02 06:51:39

  上一篇:go javascript判斷瀏覽器類型
  下一篇:go LCS (Longest Common Subsequence) 字符串最長公共子串算法