类型未声明错误

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 中定义成员函数在模板的情况下工作。

【讨论】:

啊,添加模板

以上是关于类型未声明错误的主要内容,如果未能解决你的问题,请参考以下文章

使用未声明类型“NSXMLElement”错误

ViewController 中的 Swift 错误“使用未声明的类型”

错误 C2027:使用未定义类型 - 如何声明类

UITableView 错误:使用未声明的类型“Foundation”[重复]

使用未声明类型的 UITextfield

Swift 3 核心数据“实体”错误:`使用未声明的类型`