Salut,
Au passage, on n'inclus jamais un fichier d'implémentation ( *.cpp)
Je présumes que ton fichier Test.cpp contient en réalité les définitions des fonctions membres de ta classe test, qui est template, et que tu sais qu'il faut disposer de cette implémentation, mais, pour éviter toute confusion:
Soit on définit les fonctions au sein du fichier d'en-tête (*.hpp), soit on les définit au sein d'un fichier séparé, dont l'extension peut être tout ce que tu veux, mais pas *.cpp (tpp ou impl me semblent sympa
)
Ce sera alors le fichier sépéré (tpp ou impl) qui sera inclus dans le fichier d'en-tête, et le fichier d'en-tête qui sera inclus lorsque tu as besoin de ta classe template:
fichier "test.hpp"
1 2 3 4 5 6
| template <class T>
class Test
{
/*...*/
};
#inlcude "impl/test.impl" |
fichier "test.impl"
/* l'ensemble des définitions de fonctions de Test */
fichier "main.cpp"
1 2 3 4 5 6
| #include "test.hpp"
/* autres includes éventuels */
int main()
{
/*...*/
} |
Partager