实现迭代器和const_iterators

时间:2016-10-30 01:28:28

标签: c++ listiterator const-iterator

我遇到了一个关于嵌套迭代器和const_iterator类的双链表类的编译问题。

我是新手使用模板语法,这有点像噩梦。现在我似乎在我的每个函数上都出现错误,最后出现链接器错误。这让我觉得我的标题有问题,或者包含标题,或者与函数的签名有关。

我的标题样本是:

class const_iterator {
    friend RecentList;
    Node* curr_;
    const_iterator(Node* p);
public:
    const_iterator();
    const_iterator operator++() const;

相应的实施是:

template <typename T>
   RecentList<T>::const_iterator::const_iterator(){
    curr_=nullptr;
}

template <typename T>
RecentList<T>::const_iterator::const_iterator(Node* p){
    curr_=p;
}

template <typename T>
typename RecentList<T>::const_iterator RecentList<T>::const_iterator::operator++() const{
    //++it
    curr_ = curr_->next_;
    return *this;
}

当我尝试编译时,它给了我42个错误,如:

“RecentList :: const_iterator :: operator ++(int)const”,引自:

最后有链接器错误。

此外,模板填充的原因是列表类使用模板。当我不包含该语法时,Xcode不喜欢它。

我应该在哪里纠正这个问题?

0 个答案:

没有答案