嵌套类中的构造函数(C ++)

时间:2014-01-18 22:33:41

标签: c++ generics data-structures map

我正在尝试用C ++实现通用映射。 类Map有一个迭代器的内部类,它的定义如下:

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;
};

但是当我尝试实现迭代器构造函数(或任何其他迭代器方法)时,Eclipse将不会识别它或建议它(当按下ctrl + space时),即当我写这个时:

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

我错过了什么?

1 个答案:

答案 0 :(得分:2)

您正在尝试为Iterator类定义默认构造函数,但您只声明了一个构造函数,其中包含指向包含类和复制构造函数的指针。尝试定义其中一个或声明一个默认构造函数。