Me doy cuenta de que se me han hecho preguntas similares anteriormente, pero leí algunas y aún no veo dónde me estoy equivocando. Cuando simplemente escribo mi clase sin separar el prototipo de la definición, todo funciona bien. El problema ocurre cuando se separo el prototipo y definición como se muestra a continuación:"usado sin parámetros de plantilla"
template<class T> class VisitedSet {
public:
VisitedSet();
int getSize();
void addSolution(const T& soln);
void evaluate();
private:
vector<T> vec;
int iteration;
};
Y como un ejemplo de una definición que me da este error:
int VisitedSet::getSize() {
return vec.size();
nunca he hecho una clase de plantilla antes , por favor, perdónenme si el problema aquí es trivial.
Nota: En la mayoría de los casos, desea que las definiciones de las funciones miembro de la plantilla estén accesibles en el encabezado. Si las definiciones están en el encabezado, recuerde marcarlas como 'en línea' (o defínalos dentro de la definición de clase de plantilla), si no lo son, piense dos veces y asegúrese de que no necesita las definiciones en el encabezado (lo hace no necesita las definiciones en un encabezado si crea una instancia explícita en la unidad de traducción que contiene la definición para * todos * tipos con los que desea utilizar la plantilla). Me temo que vas a obtener algo de esto muy pronto ... –