我在嘗試編寫Arduino程序時出錯。我是C++的新手,所以這很好,可能是簡單而明顯的,我錯過了。我試圖創建一個簡單的模板鏈表,但不斷遇到問題。在我的素描本中,我在自己的ino文件中聲明瞭以下內容。當我嘗試使用LinkedListItem類時,出現以下錯誤。即使我刪除模板,我仍然會得到同樣的錯誤。Arduino錯誤:ISO C++禁止聲明沒有類型的'LinkedListItem'
error: ISO C++ forbids declaration of 'LinkedListItem' with no type
LinkedList:9: error: expected ';' before '<' token
,代碼:
template <class T>
class LinkedListItem {
public:
LinkedListItem(T value);
T getValue();
LinkedListItem<T>* getPreviousItem();
void setPrevious(LinkedListItem<T>* previous);
LinkedListItem<T>* getNextItem();
void setNext(LinkedListItem<T>* next);
private:
LinkedListItem<T>* _previous;
LinkedListItem<T>* _next;
T _value;
};
template <class T>
LinkedListItem<T>::LinkedListItem(T value) {
_value = value;
}
template <class T>
T LinkedListItem<T>::getValue() {
return _value;
}
template <class T>
LinkedListItem<T>* LinkedListItem<T>::getPreviousItem() {
return _previous;
}
template <class T>
void LinkedListItem<T>::setPrevious(LinkedListItem<T>* previous) {
_previous = previous;
}
template <class T>
LinkedListItem<T>* LinkedListItem<T>::getNextItem() {
return _next;
}
template <class T>
void LinkedListItem<T>::setNext(LinkedListItem<T>* next) {
_next = next;
}
我聲明一個指向LinkedListItem這樣的:
LinkedListItem<String>* _list;
任何幫助將是非常讚賞。
您不需要在類中的LinkedListItem中提供模板參數。 –
chris
模板參數是'std :: string'嗎?如果是這樣,'''應該是小寫。 – Mahesh
不要打斷你的學習,但std :: forward_list確實存在,如果你只是需要一個通用列表 – dans3itz