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

 


Dernière réponse
Sujet : visual c++ et templates. pb de link...
SoWhatIn22 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.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
SoWhatIn22 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.
verdoux 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.
SoWhatIn22 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....
darthguy Pour les templates, c'est un traitement special.  
Ya pas de cpp. Tu mets tout dans toto.h.
SoWhatIn22 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...

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)