Я получаю сообщение об ошибке при попытке написать программу для 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'? Если это так, 's' должен быть строчным. – Mahesh
Не прерывать ваши исследования, но std :: forward_list тоже существует, если вам нужен только общий список – dans3itz