Mi rendo conto che domande simili sono state fatte prima, ma ne ho letto un paio e ancora non vedo dove sto andando male. Quando scrivo semplicemente la mia lezione senza separare il prototipo dalla definizione, tutto funziona perfettamente. Il problema si verifica quando separo il prototipo e la definizione come illustrato di seguito:"usato senza parametri modello"
template<class T> class VisitedSet {
public:
VisitedSet();
int getSize();
void addSolution(const T& soln);
void evaluate();
private:
vector<T> vec;
int iteration;
};
E come esempio di una definizione che mi dà questo errore:
int VisitedSet::getSize() {
return vec.size();
Non ho mai fatto una classe template prima , quindi scusami se il problema qui è banale.
Nota: nella maggior parte dei casi si desidera che le definizioni delle funzioni membro del modello siano accessibili nell'intestazione. Se le definizioni sono nell'intestazione, ricordati di contrassegnarle come 'inline' (o definirle all'interno della definizione della classe template), se non lo sono, pensaci due volte e assicurati di non aver bisogno delle definizioni nell'intestazione (fai non sono necessarie le definizioni in un'intestazione se si istanzia esplicitamente nell'unità di traduzione che contiene la definizione per * tutti * i tipi con cui si desidera utilizzare il modello). Temo che presto riuscirai ad essere un po '... –