我已經定義爲:一類如下:模板類方法聲明失敗
template <typename T> class list
{
private:
struct node
{
T val;
node *next;
} *origin;
node* iterate(node *first,node *last);
(...) code
};
隨着它在這裏定義的函數方法:
template <typename T>
node* list<T>::iterate(node *first,node *last)
{
while(first->next!=last)
{
first = first->next;
}
return first;
}
由於類是使用模板功能,一切都寫在標題中。
的問題是,當我嘗試編譯它給了我這些錯誤:
error C2143: syntax error : missing ';' before '*'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2065: 'T' : undeclared identifier
error C2923: 'list' : 'T' is not a valid template type argument for parameter 'T'
所有這4個錯誤表明在這一行:
template <typename T>
node* list<T>::iterate(node *first,node *last)
在所有情況下的函數被調用這從類中的方法:
node* aux = iterate(origin,origin);
這裏有什麼問題嗎?爲什麼它不起作用?
@quandev,感謝編輯:) –
@R薩胡,謝謝,它的工作。 –
@RobertEagle,不客氣。 –