Separe los archivos .h y .cpp en la implementación de la clase de plantilla
Estoy tratando de escribir una clase de plantilla que pueda formar clases dependiendo de la<class>
Paso. El problema es que no puedo declarar y definir en el mismo..h
expediente. En mi proyecto, la herramienta UTF solo puede funcionar con el.cpp
Archivos (para cobertura de código, etc.). He visto en un blog que dicen “Añadir.cpp
en lugar de.h
". ¿Es esto aconsejable?
Template.h
#ifndef TEMPLATE_H_
#define TEMPLATE_H_
template<class T>
class Template
{
public:
T Add(T a,T b);
};
#endif /* TEMPLATE_H_ */
Template.cpp
#include "Template.h"
template<class T>
T Template<T>::Add(T a, T b)
{
return a+b;
}
Main.cpp
#include "Template.cpp" //Is this a good practise?
#include <iostream>
int main(int argc, char **argv) {
Template<int> obj;
std::cout<<obj.Add(3,4)<<std::endl;
}
Si esto no es recomendable, ¿cómo resuelvo este problema?export
?