Brak listy argumentów dla szablonu klasy
Mam ciekawy problem i nie jestem pewien, na czym polega problem. Tworzę klasę o nazwie LinkedArrayList, która używa szablonu typename, jak pokazano w poniższym kodzie:
#pragma once
template <typename ItemType>
class LinkedArrayList
{
private:
class Node {
ItemType* items;
Node* next;
Node* prev;
int capacity;
int size;
};
Node* head;
Node* tail;
int size;
public:
void insert (int index, const ItemType& item);
ItemType remove (int index);
int find (const ItemType& item);
};
Teraz to nie daje żadnych błędów ani problemów. Jednak tworzenie funkcji w pliku .cpp powoduje błąd „Brak listy argumentów dla szablonu klasy„ LinkedArrayList ”.” Mówi także, że ItemType jest niezdefiniowany. Oto bardzo prosty kod w pliku .cpp:
#include "LinkedArrayList.h"
void LinkedArrayList::insert (int index, const ItemType& item)
{}
ItemType LinkedArrayList::remove (int index)
{return ItemType();}
int find (const ItemType& item)
{return -1;}
Wygląda na to, że ma coś wspólnego z szablonem, ponieważ jeśli go skomentuję i zmienię ItemTypes w funkcjach na ints, nie będzie żadnych błędów. Ponadto, jeśli po prostu wykonam cały kod w pliku .h zamiast mieć oddzielny plik .cpp, działa to również dobrze.
Każda pomoc dotycząca źródła problemu byłaby bardzo mile widziana.
Dzięki.