类型未声明错误
Posted
技术标签:
【中文标题】类型未声明错误【英文标题】:Type is not declared error 【发布时间】:2012-10-06 18:21:11 【问题描述】:我收到一条错误消息,提示“T”没有命名类型。我对这意味着什么感到困惑。我以为我在课堂上宣布它说虚拟T?
template <class T>
class ABList : public ABCList<T>
private:
T a [LIST_MAX];
int size;
public:
ABList ();
virtual bool isEmpty ();
virtual int getLength ();
virtual void insert (int pos, T item);
virtual T remove (int pos);
virtual T retrieve (int pos);
;
.
T ABList::retrieve (int pos) throw (ListException)
if (pos <= 0 || pos >= count)
throw new ListException();
return item[pos – 1];
【问题讨论】:
【参考方案1】:你必须写成:
template<typename T>
T ABList<T>::retrieve (int pos) throw (ListException)
//...
因为ABList
是一个类模板。
请注意,您必须在定义类模板的同一文件中定义成员函数。在.h
文件中定义类模板,在.cpp
中定义成员函数不在模板的情况下工作。
【讨论】:
啊,添加模板以上是关于类型未声明错误的主要内容,如果未能解决你的问题,请参考以下文章
ViewController 中的 Swift 错误“使用未声明的类型”