IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Une petite erreur de création de templates


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Une petite erreur de création de templates
    Bonjour,

    j'ai ecrit le code suivant dans visual C++

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    Point.h 
    
    template <class T> class Point 
    { 
    private: 
    T x; 
    T y; 
    public: 
    Point(); 
    virtual ~Point(); 
    Point(T a, T b); 
    void afficher(); 
    void deplacer(T dx, T dy); 
    
    }; 
    
    
    Point.cpp 
    
    
    #include "Point.h" 
    #include "iostream.h" 
    
    
    ////////////////////////////////////////////////////////////////////// 
    // Construction/Destruction 
    ////////////////////////////////////////////////////////////////////// 
    
    template <class T> Point<T>::Point() 
    { 
    
    } 
    
    template <class T> Point<T>::~Point() 
    { 
    
    } 
    template <class T> Point <T>::Point(T a, T b) 
    { 
    x=a; 
    y=b; 
    
    } 
    template <class T> void Point<T> ::afficher() 
    { 
    cout<<x<<" "<<y<<endl; 
    } 
    template < class T> void Point<T>::deplacer(T dx, T dy) 
    { 
    x+=dx; 
    y+=dy; 
    } 
    
    
    Main 
    
    #include "Point.h" 
    
    
    int main(int argc, char* argv[]) 
    { 
    Point<int> p(2,7); 
    p.afficher(); 
    return 0; 
    }
    J'ai reçu le message d'erreur suivant

    --------------------Configuration: gggaaa - Win32 Debug--------------------
    Linking...
    gggaaa.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall Point<int>::~Point<int>(void)" (??1?$Point@H@@UAE@XZ)
    gggaaa.obj : error LNK2001: unresolved external symbol "public: void __thiscall Point<int>::afficher(void)" (?afficher@?$Point@H@@QAEXXZ)
    gggaaa.obj : error LNK2001: unresolved external symbol "public: __thiscall Point<int>:: Point<int>(int,int)" (??0?$Point@H@@QAE@HH@Z)
    Debug/gggaaa.exe : fatal error LNK1120: 3 unresolved externals
    Error executing link.exe.

    gggaaa.exe - 4 error(s), 0 warning(s)




    Est ce quelqu'un peut m'aider?
    merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Il serait intéressant que tu définisses tes fonctions...
    http://cpp.developpez.com/faq/cpp/?p...VERS_templates

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Les fonctions dont j'ai besoin sont déjà défini.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par aoyou Voir le message
    Il serait intéressant que tu définisses tes fonctions...
    http://cpp.developpez.com/faq/cpp/?p...VERS_templates
    Tu aurai du regarder ce lien...
    Enfaite pour les templates, il faut que tu include le .cpp dans le .h et non l'inverse

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    À cela près qu'il est parfois déconseillé de donner l'extension ".cpp" aux fichiers qu'on inclut.

    Des extensions comme ".tpp" ou ".inl" semblent assez populaires...

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    À cela près qu'il est parfois déconseillé de donner l'extension ".cpp" aux fichiers qu'on inclut.

    Des extensions comment ".tpp" ou ".inl" semble assez populaires...
    Aprés c'est un choix

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Merci beaucoup.

    Problème résolu.

Discussions similaires

  1. [Grid Triggers] une petite erreur
    Par ikeas dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 27/06/2009, 22h16
  2. [MySQL] Une petit erreur qui m'échappe
    Par Psycha dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/06/2007, 11h39
  3. Réponses: 26
    Dernier message: 27/04/2005, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo