我遇到了一个关于嵌套迭代器和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不喜欢它。
我应该在哪里纠正这个问题?