我是c ++的新手。我收到错误“符号'列表'无法解决” 我正在研究eclipse,我无法弄清楚问题是什么......
List.h这里是父类的声明,它是一个泛型类,即Vector 将继承
#ifndef LIST_H_
#define LIST_H_
template <class E> class List {
protected:
int size;
public:
virtual ~List();
virtual void add(E o) = 0;
virtual E get(int index) = 0;
int getSize();
};
template <class E> List<E>::~List() {
}
template <class E> int List<E>::getSize() {
return size;
}
#endif /* LIST_H_ */
Vector.h矢量头文件,它继承自List,它将实现List的纯虚方法 我得到错误,当我从List继承,在Vector的类声明中,“符号'列表'无法解析”
#include "List.h"
template <class E> class Vector: public List<E>{
private:
class Node {
public:
E value;
Node* next;
Node(E value): value(value), next(0) {}
};
typedef Node* PNode;
PNode first;
public:
Vector();
virtual ~Vector();
void add(E o);
E get(int index);
virtual void add(E o);
virtual E get(int index);
};
答案 0 :(得分:0)
virtual
说明符不是重载解析的一部分。您无法使用它们来区分功能签名,从而导致错误:“无法重载”。
例如:
void add(E o);
和
virtual void add(E o);
都具有相同的签名Vector::*(int)
。它们不是两种不同的重载。
无论你想做什么,我建议退一步,先尝试先掌握基本概念。它会为你带来很多痛苦。
答案 1 :(得分:0)
快速搜索google yelds 符号'列表'无法解析不是编译错误,它是(愚蠢的)eclipse正在尝试为您重建交叉引用。尝试菜单命令Index-&gt; Rebuild。