Los templates tienen que estar definidos e implementados SIEMPRE en el archivo de cabecera... no puedes poner implementación en un cpp.
La razón es que los templates se compilan sobre la marcha. Un template es un manual de instrucciones que permite crear clases... cada vez que el compilador se encuentra un uso del template que no existe aún, hace una compilación del template específica para ese uso... por esta razón se exige que los templates no tengan código en los cpp.
La razón es que los templates se compilan sobre la marcha. Un template es un manual de instrucciones que permite crear clases... cada vez que el compilador se encuentra un uso del template que no existe aún, hace una compilación del template específica para ese uso... por esta razón se exige que los templates no tengan código en los cpp.