template, main, visual C++ - C++ - Programmation
Marsh Posté le 30-10-2003 à 17:04:51
met tout ce qui est dans ton element.cpp dans ton element.h, à la suite de ce qui constitue réellement le header ...
Marsh Posté le 30-10-2003 à 17:18:52
theShOcKwAvE a écrit : met tout ce qui est dans ton element.cpp dans ton element.h, à la suite de ce qui constitue réellement le header ... |
Pourquoi? c'est pas possible de séparer code source et header dans le cas des templates? merci en tout cas @+
Marsh Posté le 30-10-2003 à 19:38:36
hum ... D'autres personnes y répondraient sans doute mieux que moi ...
Mais pour l'instant, considère que ce n'est pas possible (simplement parce que la majeure partie des compilateurs ne gèrent pas l'export, je crois ...)
Marsh Posté le 30-10-2003 à 21:29:20
pas possible pour l'insatnt.
export et tres mal géré par les compilo donc mets ton code template dans ton .h
Marsh Posté le 30-10-2003 à 21:38:05
Citation : Catégorie : C++ |
bobmorton a écrit :
|
Marsh Posté le 30-10-2003 à 21:39:38
Ca marche avec CC sous solaris
(bon, il exporte tout et crée un répertoire temporaire avec des conchoncetés dedans)
Marsh Posté le 30-10-2003 à 21:41:47
kadreg a écrit : Ca marche avec CC sous solaris |
il est de retour \o/
Marsh Posté le 30-10-2003 à 21:44:01
Harkonnen a écrit : |
Commentaire hors sujet,
Marsh Posté le 31-10-2003 à 09:27:26
Harkonnen a écrit :
|
certes, c'est parce que j'ai simplifier le code avant de poster. Merci bien en tout cas, et j'en place une pour ces profs sympathiques qui te disent "si si c'est possible l'erreur est ailleurs"...
Marsh Posté le 31-10-2003 à 13:44:31
bobmorton a écrit : |
si, c'est possible.
A la fin de ton .h dans lequel tu déclares ton template, tu inclues ton .cpp qui contient l'implémentation (#include "machin.cpp" )
Ca permet, pour ceux qui le souhaitent, de garder la séparation fonctionnelle entre les fichiers .h (header) et .cpp (implémentation).
Element.h:
Code :
|
Citation : ces putains de profs |
Etre vulgaire n'est ni une obligation ni une fatalité. Tu dois pouvoir t'en sortir.
Marsh Posté le 31-10-2003 à 13:49:41
Joel F a écrit : pas possible pour l'insatnt. |
*
recherche google sur "why we can't afford export" pour plus d'info sur pkoi non seulement c'est mal géré mais en plus pkoi ca ne sera surement jamais géré
Marsh Posté le 30-10-2003 à 15:58:33
Voila j'ai un main.cpp tout ce qu'il y a de plus simple :
je fais la classe élément en séparant .h et .cpp, ca plante lors de l'édition de lien(quand je fais "build" sous visual C++) :
fichier : Element.h
fichier : Element.cpp
En revanche si j'inclue le main dans le .cpp ca marche et je comprend pas pourquoi?
Message d'erreur :
Linking...
main.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall Element<int>::~Element<int>(void)" (??1?$Element@H@@UAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall Element<int>::Element<int>(int,class Element<int> *,class Element<int> *)" (??0?$Element@H@@QAE@HPAV0@0@Z)
Debug/TP05_Ensemble.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.