Witam,
Napisałem sobie szablon klasy List, która ma odpowiadać za tworzenie listy pojedynczo łączonej zawierającej w zależności od potrzeby różne obiekty. Jej kod wygląda tak:
template <typename T>
class List {
private:
struct Node {
T data;
Node* next;
};
Node* head;
public:
List() {
this->head = NULL;
};
~List() {
// Deleting all elements
};
void add(const T& p);
void print();
};
template <typename T>
void List<T>::add(const T& p) {
Node* tmp = this->head;
Node* newNode = new Node();
newNode->data = p;
if (!tmp) {
newNode->next = NULL;
}
else {
newNode->next = this->head;
};
this->head = newNode;
};
Za każdym razem jednak pojawia się błąd mówiący o tym, że brak jest domyślnego konstruktora dla struktury Node. Do czego jest on potrzebny i jak mogę go mądrze zaimplementować?