Bonjour, j'ai créé une classe template.
De façon très classique, la déclaration est dans le .hpp et la définition des fonctions dans le cpp.
J'aimerai maintenant que certaines fonctions de ma classe soient dans d'autres fichiers .cpp
Or je crois qu'il faut instancier les fonction templates dans le .cpp sinon le complilateur ne peut pas trouver le code associé a ma fonction.
J'ai essayé le code suivant :
(maclasse.hpp)
template <int unEntier>
class MaClass:
{
//constructeur
void uneFonction();
void uneAutreFonction();
}
//je dois instancier ici la fonction qui n'est pas dans maclass.cpp
template class maclasse<1>;
template maclass<1>::uneAutreFonction();
(maclass.cpp)
template<int unEntier>
void MaClass<1>::uneFonction()
{// fait plein de choses}
(UnAutreFichier.cpp)
template<int unEntier>
void MaClass<1>::uneAutreFonction()
{// fait plein de choses}
or le compilateur me donne l'erreur :
error : explicit instantiation of uneAutreFonction but no definition avaiable
avez vous une idée de la bonne démarche a suivre pour découper en plusieurs fichiers une classe template ?
merce d'avance