嵌套类指针访问
Nested class pointer access
我对c++相当陌生,在我尝试创建链表时,我遇到了一个我不理解的错误。
代码:
template <typename T>
class List{
class Node{
T data;
Node<T> *next;
Node<T> *previous;
Node<T>(T& data,const Node<T> *next,const Node<T> *previous): data(data),
next(next),previous(previous){
};
};
Node<T> *head;
Node<T> *tail;
int size;
public:
class Iterator{
Node<T> *node;
List<T> *list;
};
void List<T>::remove(List<T>::Iterator& It){
if(It.list!=this){ // FIELD list COULD NOT BE RESOLVED
throw NON_MATCHING_LIST();
}
if(size==0 || It.node=tail){ //FIELD node COULD NOT BE RESOLVED
throw ELEMENT_NOT_FOUND();
}
It.node->previous=It.node->next; //FIELD node COULD NOT BE RESOLVED (and naturally the rest).
It.node->next->previous=It.node->previous
}
};
在我的remove函数中,我试图删除列表中正好在迭代器之前的成员,唉,我得到了一个错误,说
节点/列表字段无法解析
我已经尝试传递迭代器类型iterator &
感谢您的反馈
除了其他人在对问题的评论中提到的问题外,似乎您的(第一个)问题是您需要使用typename
消歧器:
typename List<T>::Iterator
// ^^^^^^^^
这告诉编译器应该将Iterator
解析为类型的名称,而不是List<T>
的数据成员的名称。
相关文章:
- C++ - 循环访问指针数组会导致错误
- 如何访问指针结构的成员变量?
- 从子线程访问指针
- 如何在C++中使用类对象访问指针数据成员
- 如何使用二维语法访问指针
- 我可以保证以负偏移访问指针吗?
- 是否访问指针元组和互斥锁线程安全
- 如何从嵌套类中访问指针
- C++ 如何访问指针的结构变量
- 从地图擦除后访问指针
- 会员在共享_ptr上访问指针
- 删除后访问指针
- 为什么在递增后使用 [] 运算符访问指针数组会返回错误地址的当前内存位置
- 如何在python脚本中使用Pybind11修改/访问C++指针
- 无法从另一个函数访问指针数组
- 无法访问指针C 的值
- 访问指针类成员 (C++)
- 访问指针数组中的子类方法
- 访问指针到结构中的向量
- 访问指针类型的静态属性