2015-06-11 41 views
0

我是使用C++的新手。我需要聲明一個類的實例作爲另一個類中函數的參數,並將參數實例聲明爲朋友。我舉例說明。在函數參數中創建好友類實例

class foo(){ 
    private: 
     void a(){ 
      // function definition 
       } 
} 

class other_foo(){ 
    public: 
     void b(foo f){ 
      // function definition 
       } 

} 

在上面的例子中,我需要聲明類other_foo作爲foo的朋友,所以,我可以用Foo類的私有函數‘一’。我已閱讀了其他許多參考文獻,但沒有確切的指導,以確定它是否真的可行。如果不是,請問您能否提出一種解決方法? 我試圖將other_foo聲明爲類foo定義中的朋友,但編譯器向other_foo拋出一個錯誤,即私有方法無法訪問。我也嘗試在參數本身中聲明實例爲「friend foo f」,但編譯器爲此拋出了一個錯誤。我真的需要在哪裏聲明該類other_foo是foo類的朋友類?

回答

0
class foo{ 
private: 
    void a(){ 
     // function definition 
    } 
    friend class other_foo; 
}; 

class other_foo{ 
public: 
    void b(foo f){ 
     // function definition 
    } 
}; 

現在other_foo可以訪問foo的私有成員。課堂名稱前面的括號是不必要的,並且在課堂定義後添加;