2014-01-18 122 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

它没有帮助,主要问题是我没有得到任何建议 –