vu les erreurs, tu as implémenté dans un Cpp, essaie de tout mettre dans le . h
explication :
le template est traité en prétraitement, avant la compilation : il voit dans le main qu´il va avoir besoin d´une list<int> et d´une liste<float>
que fait il ?
il cree 2 classes distinctes, en remplaçant un coup les T par des int, un coup par des float.
puis il compile : et quand il compile, il crée le . obj qui reste figé.
au moment du linkage, il cherche ce dont il a besoin. Si tu as dans un fichier exterieur un list<char>, alors il ne le trouvera pas, car il aura déja compilé la partie < list>
c´est pour cela qu´il faut tout mettre dans le . h, pour qu´au moment du linkage, il aie encore acces au code générique, et puisse creer la classe list<char>
je crois que je me suis exprimé comme un porc, mais ce qu´il faut retenir, c´est :
" si tu as un template, tu implémentes direct dans le . h"