Tengo un problema que realmente no entiendo. Tengo un Nodo de clase.C++ clase con plantilla no puede encontrar su constructor
template<class T>
class node {
protected:
T _data;
public:
node(T data);
};
Esto está en el archivo "node.h". En el archivo "node.cpp", no es este constructor:
#include "node.h"
template<class T>
node<T>::node (T data) {
_data = data;
}
Mientras que el compilador no encuentra ningún error, el enlazador (ld) me dice:
/usr/bin/ld: símbolos no definidos:
nodo <int> :: node (int)
la parte extraña ... si muevo el constructor de .cpp a archivo .h, todo funciona bien. ¿Dónde está el problema?
También se puede poner a plantillas funciones miembro de una clase no a plantillas en el archivo CPP si nunca va a llamar en otro lugar (por lo que cumplir esto, debe ser privado, pero no tienen que serlo). – rmeador