Symbole externe non résolu sous Visual - C++ - Programmation
Marsh Posté le 02-07-2009 à 16:47:45
Je ne retrouve pas ce format dans les fichiers de Visual.
Suffit-il de simplement renommer les fichiers ?
Est-ce que ce simple problème d'extension peut expliquer mon problème de compilation ?
Marsh Posté le 02-07-2009 à 16:48:37
Je viens de test le renommages des fichiers, sans succès.
Marsh Posté le 02-07-2009 à 16:51:04
non ...
le code de ton tempalte doit etre dans son ficheir d'entete :
Code :
|
et ton Article.cpp n'a pas a existé
Marsh Posté le 02-07-2009 à 16:55:12
Ce que Joel veut dire c'est que la definition du template doit generalement (*) etre visible au point d'instantiation. Une technique est de la mettre dans l'entete (que Joel a appele .hpp mais toi tu lui a donne .h comme extension, l'extension ne joue aucun role) directement. Certains utilisent un .tpp inclu dans le .hpp (ou le .h) permettant de separer clairement l'implementation de l'interface.
(*) Faire une recherche sur "export template" pour les amateurs d'exceptions.
Marsh Posté le 02-07-2009 à 16:59:24
OK, cela marche effectivement
Par contre, je ne comprends pas pourquoi la précédente écriture n'est pas autorisée.
Notamment, si la méthode est bcp plus longue que celle de ce test (ce qui est mon cas), est-ce que je reste contraint de la définir dans le même fichier que Article.h ?
Marsh Posté le 02-07-2009 à 17:06:53
Le probleme principal est qu'instancier un template genere du code. Fait la recherche que j'ai conseille. Allez, un lien parmi d'autres possible: http://www.bourguet.org/v2/cpplang/export.pdf
Marsh Posté le 02-07-2009 à 18:06:33
Ok, merci de ces précisions,
l'écriture de Article.h en :
Code :
|
marche parfaitement, ce que je recherchais.
Encore merci de votre aide,
NathanGe
Marsh Posté le 02-07-2009 à 16:38:19
Bonjour,
Je rencontre un problème à la compilation d'un projet en C++ écrit sous Microsoft visual Studio que je ne comprends pas.
De manière simplifiée, j'ai rédigé trois fichiers :
Article.h
Article.cpp
et main.cpp
La compilation se passe bien jusquà l'édition de lien qui renvoie le message :
Sauriez-vous d'ou provient cette erreur ?
L'utilisation des templates me parait pourtant correcte, d'autant plus que le programme :
se compile et s'éxécute sans erreur !
Pourriez-vous me fournir une aide pour comprendre mon problème ?
Merci d'avance