begin process at 2012 05 29 20:41:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

problème avec les templates


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème avec les templates

samedi 12 juillet 2003 à 14:53:58 | problème avec les templates

vecchio56

Administrateur CodeS-SourceS
J'ai un petit problème en voulant compiler ceci (avec visual C++ 6):

////////////////////////////////////
// Truc.h

template <class T>
class Truc
{
public:
Truc(int a);
};

////////////////////////////////////
// Truc.cpp

#include "Truc.h"

template <class T> Truc<T>::Truc(int a)
{
}

////////////////////////////////////
// main.cpp

#include "Truc.h"

int main()
{
Truc<int> a(2);
return 0;
}


Et j'obtiens le message suivant:

Compiling...
Truc.cpp
main.cpp
Linking...
main.obj : error LNK2001: unresolved external symbol "public: __thiscall Truc<int>::Truc<int>(int)" (??0?$Truc@H@@QAE@H@Z)
Debug/temp.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

temp.exe - 2 error(s), 0 warning(s)

Par contre en mettant la fonction main dans le fichier Truc.cpp, pas de problème. Je pense que c'est dû à l'utilisation des templates, car le même code sans template se lie normalement.
Merci de m'aider
samedi 12 juillet 2003 à 15:20:46 | Re : problème avec les templates

Kaid

Le code d'une classe template se place dans le fichier include et non dans un fichier source.

Truc.h

template <class T>
class Truc
{
public:
Truc(int a);
};

template <class T>
Truc<T>::Truc(int a)
{
}


Kaid - kaid.fr.st

-------------------------------
Réponse au message :
-------------------------------

> J'ai un petit problème en voulant compiler ceci (avec visual C++ 6):
>
> ////////////////////////////////////
> // Truc.h
>
> template <class T>
> class Truc
> {
> public:
> Truc(int a);
> };
>
> ////////////////////////////////////
> // Truc.cpp
>
> #include "Truc.h"
>
> template <class T> Truc<T>::Truc(int a)
> {
> }
>
> ////////////////////////////////////
> // main.cpp
>
> #include "Truc.h"
>
> int main()
> {
> Truc<int> a(2);
> return 0;
> }
>
>
> Et j'obtiens le message suivant:
>
> Compiling...
> Truc.cpp
> main.cpp
> Linking...
> main.obj : error LNK2001: unresolved external symbol "public: __thiscall Truc<int>::Truc<int>(int)" (??0?$Truc@H@@QAE@H@Z)
> Debug/temp.exe : fatal error LNK1120: 1 unresolved externals
> Error executing link.exe.
>
> temp.exe - 2 error(s), 0 warning(s)
>
> Par contre en mettant la fonction main dans le fichier Truc.cpp, pas de problème. Je pense que c'est dû à l'utilisation des templates, car le même code sans template se lie normalement.
> Merci de m'aider


Cette discussion est classée dans : problème, int, truc, cpp, main


Répondre à ce message

Sujets en rapport avec ce message

Template C++ [ par luhtor ] Je suis confronté à un petit problème. Quelqu'un saurait-il pourquoi le code suivant ne compile pas ? (j'utilise VC express, mais c'est pas important) Problème en C++ [ par Farqual ] Bonjour, je viens de me lancer dans le cpp mais j'ai un problème au niveau de la compilation d'un fichier source en un .exe j'apprend avec un livre et appeler le int main() c++ [ par charleslemagicien ] bonjour à tous, Je suis dans un fichier connexe data.cpp et une fois ma fonction terminé je voudrais appeler le int main() du fichier main.cpp l'équi [C++]Problème avec Classes dans CodeBlocks [ par Derezzed ] Bonjour, je n'arrive pas à compiler un simple programme où je crée une classe dans CodeBlocks. Là j'ai uniquement les trucs automatiques (j'ai essayé Demande d'aide c++ et requête SQL [ par juliette666 ] Bonsoir a tous pour commencer j'utilise visual studio 2010 (c++ console) et pour ma BD c'est MySQL. j'ai Connexion.h,Connexion.cpp et main.cpp voila stuctures qui s'apellent mutuellement [ par Daemonight ] Bonjour à tous, Ca fait un petit moment déjà que je me pose la question suivante : Comment faire pour que le code suivant fonctionne : [code=cpp] str compiler c/c++ main en dll [ par bmoumen27 ] Comment compiler le code suivant en dll avec gcc [code=cpp]int main(int argc, char** argv){ //the main code here }[/code] Comment c/c++ appels .Ex Problème de compréhension tableau. [ par fhoest ] Bonjour, je débute en c++ et j'ai un problème sur le dimensionnement d'un tableau, voilà ce que je ne comprend pas je défini un tableau de 5 (case) en utilisation de atoi() [ par ims214 ] Bonjour, dans mon code j'ai déclaré: [code=cpp]WCHAR Xchar[10][/code] le programme rempli cette chaine à partir d'un index variable, par exemple: [co Detection d'une main [ par Darkantho ] Bonjour, je cherche à faire du hand tracking avec openCV. Le but est de montrer ma main à la webcam et un mode 3D de main reproduira la position de m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,025 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales