2014-01-18 119 views
0

我試圖實現在C通用映射++。 類地圖有一個內部類的迭代器,它的定義如下:在構造嵌套類(C++)

public: 
Map(); 
Map(const Map& map); 
~Map(); 
class Iterator { 
    Map* map; 
    Node* node; 
public: 
    Iterator(Map*); 
    Iterator(const Iterator& Iterator); 
    Iterator& operator++(); 
    Iterator& operator--(); 
    Iterator& operator*(); 
    const K getKey(); 
    T& getData(); 
    const T& getData() const; 
}; 

,但是當我試圖實現迭代器的構造函數(或任何其他iterator方法),Eclipse將不會recoginize,或暗示其(當按Ctrl +空格),即當我寫這個:

template<class K, class T> 
Map<K,T>::Iterator::Iterator(){ //Member declaration not found 
//some code of constructing... 
} 

我想念什麼?

+0

添加自包含和小樣本。另外,我們是在談論日食問題或實際的編譯器警告? – tumdum

+0

什麼是整個錯誤信息?並向我們​​展示構造函數實現的代碼。 – 0x499602D2

+0

@TomaszKłak - 那麼,月蝕警告它,當我嘗試按Ctrl +空間,我沒有得到正確的建議,因爲我期望。 但實際上當我看到它的控制檯(如打印所有的錯誤)上它不存在,但它仍然困擾着我,我得到了一些錯誤,這意味着什麼是錯的。 整個錯誤信息是我寫的錯誤。 –

回答

2

你正試圖定義一個默認的構造函數爲您Iterator class但你只聲明瞭一個構造方法一個指向包含類和拷貝構造函數。嘗試定義其中之一或聲明默認構造函數。

+0

它沒有幫助,主要問題是我沒有得到任何建議 –