Mam ciekawy problem i nie jestem do końca pewien, na czym polega problem. Tworzę klasę o nazwie LinkedArrayList który używa szablonu typename, jak pokazano w poniższym kodzie:Brakuje listy argumentów dla szablonu klasy
#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 lub problemów. Jednak tworzenie funkcji w pliku .cpp powoduje błąd "Brak listy argumentów dla szablonu klasy" LinkedArrayList "." Mówi również, że ItemType jest niezdefiniowany. Oto kod, bardzo prosty w .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 szablonu, bo gdybym skomentować go i zmienić ItemTypes w pełnieniu funkcji wskazówki, nie robi nie dają żadnych błędów. Ponadto, jeśli po prostu robię cały kod w .h zamiast mieć oddzielne .cpp, to działa również dobrze.
Każda pomoc dotycząca źródła problemu byłaby bardzo doceniana.
Dzięki.