Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1446 connectés 

  FORUM HardWare.fr
  Programmation

  visual c++ et templates. pb de link...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

visual c++ et templates. pb de link...

n°18337
SoWhatIn22
Posté le 13-03-2001 à 11:12:30  profilanswer
 

hello,
 
big probleme avec visual c++ (commence à me gaver celui là...)
je veux faire une classe template.
 
toto.h
------
template <class T> class toto
{
public:
 toto(void);
 ~toto(void);
 
 int Add(void);
private:
 T a;
};
 
 
toto.cpp
--------
template <class T> toto<T>::toto(void)
{
 a=0;
}
 
template <class T> toto<T>::~toto(void)
{
}
 
template <class T> T toto<T>::Add(void)
{
 return ++a;
}
 
 
test.cpp
--------
#include <toto.h>
 
void main(void)
{
toto<int> acme();
printf( "%d\n", acme.Add() );
}
 
 
---------
Bref, comme dans les bouquins...
Et ben ca fonctionne pas parce que j'ai des erreurs au link:
 
Test.obj : error LNK2001: unresolved external symbol "public: __thiscall toto<int>::~toto<int>(void)"
Test.obj : error LNK2001: unresolved external symbol "public: __thiscall toto<int>::toto<int>(void)"
Test.obj : error LNK2001: unresolved external symbol "public: int __thiscall toto<int>::Add<int>(void)"
 
 
bref, il trouve rien.
QQ1 peut m'aider, parce que je comprends pas ce qu'il faut lui dire à ce visual pour que ca fonctionne...
 
merci d'avance...

mood
Publicité
Posté le 13-03-2001 à 11:12:30  profilanswer
 

n°18343
darthguy
Posté le 13-03-2001 à 12:25:55  profilanswer
 

Pour les templates, c'est un traitement special.  
Ya pas de cpp. Tu mets tout dans toto.h.

n°18359
SoWhatIn22
Posté le 13-03-2001 à 13:45:45  profilanswer
 

merci, ca fonctionne beaucoup mieux ;)
 
par contre, il me vient alors une autre question à l'esprit:
supposons que je veuille faire une libtairie avec la classe en question.
 
Habituellement, j'ai le header (.h) et les d"clarations (.cpp).
Je compile le tout, et je n'ai besoin de donner que le header et le .lib
 
Ici, j'ai tout dans un seul fichier...
Je suis obligé de tout donner?
 
C'est étonnant quand même cette obligation de devoir tout mettre dans le .h
surtout que j'ai pas trouvé une ligne qui dit ca dans le msdn... pas top, comme documentation, ce msdn....

n°18364
verdoux
And I'm still waiting
Posté le 13-03-2001 à 13:56:12  profilanswer
 

Mais comment veux tu que ta .lib intègre tous les cas d'utilisation de tes classes de templates ?
Si le client veut classe_template<classe_du_client>, il faut que le compilo puisse générer le code correspondant.

n°18366
SoWhatIn22
Posté le 13-03-2001 à 14:05:17  profilanswer
 

donc obligé de filer le code source?...
Disons que je ne trouve pas cela pratique. Tout comme devoir laisser les définitions de méthodes dans le header... On arrive vite à des gros fichiers, et cela devient vite pénible...
 
Mais bon.
oki.
merci à vous.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  visual c++ et templates. pb de link...

 

Sujets relatifs
[ VISUAL STUDIO 6 ] Le Service Pack nouveau est arrivé !!!!!Visual C++6.0 ...........Introduction Edition ? Koitece ?
VISUAL C++ et W2000 totalement instables HELPVisual C++ & SQL
[Visual Basic]: Quels base do donnee peut on utiliser avec (a part...Problème avec Visual C++
doc visual c++[MFC - Visual C++] Evenements de CEdit...
Programmer le port serie RS232 en visual C ?Visual C++4.00 , ca suffit ou pas pour la prog en C ?
Plus de sujets relatifs à : visual c++ et templates. pb de link...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR