2014-10-19 250 views
0

如何編寫嵌套類構造函數的代碼?因爲下面的例子給我的錯誤訪問嵌套類構造函數

foo.h中

class foo 
{ 
    public: 
     class bar 
     { 
      public: 
      bar(); 
      ~bar(); 
     } 
    private: 

} 

Foo.cpp中

#include "foo.h" 

foo::bar() 
{ 

} 
+0

請提供錯誤和代碼的部分,當你問。 – ChiefTwoPencils 2014-10-19 17:14:07

回答

3

你必須明確地命名構造函數的foo::bar成員沒有的, foo。調整名稱如下:

foo::bar::bar() {} 
//  ^^^^^ 
0

因爲酒吧是一個「派生類」富的,如果你想訪問函數bar(),這意味着,你需要先訪問類的吧。

欄()是FOO ::酒吧::

的命名空間,您需要嘗試富::酒吧::巴()

0
class foo { 
public: 
    foo() : _bar(this) {} 

    class bar { 
    public: 
     bar(const foo* base); 
     ~bar() {} 
    private: 
     const foo* _base; 
    }; 
private: 
    bar _bar; 
}; 

foo::bar::bar(const foo* base) : _base(base) {} 

加入一個變量在那裏也如果需要的話,展示如何在嵌套類中調用外部類函數。

作爲一個方面,你也有語法錯誤。你錯過了一個;關閉課程}。