Lista de argumentos para o modelo de classe está ausente
Estou tendo um problema curioso e não sei bem qual é o problema. Estou criando uma classe chamada LinkedArrayList que usa um modelo de nome de arquivo, conforme mostrado no código abaixo:
#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);
};
Agora, isso não causa erros ou problemas. No entanto, a criação das funções no arquivo .cpp me fornece o erro "A lista de argumentos do modelo de classe 'LinkedArrayList' está ausente." Também diz que ItemType é indefinido. Aqui está o código, muito simples, no .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;}
Parece que tem algo a ver com o modelo, porque se eu comentar e alterar os ItemTypes nas funções para ints, ele não dará nenhum erro. Além disso, se eu apenas fizer todo o código no .h em vez de ter um .cpp separado, ele funcionará bem também.
Qualquer ajuda sobre a origem do problema seria muito apreciada.
Obrigado.