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

Langage C++ Discussion :

Probleme de template


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de alexorcet
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Par défaut Probleme de template
    Bonsoir à tous
    j'essaye de creer un petit programme qui utilise des templates pour l'instant je veux les essayer avec le simple type int pour la suite l'integere à mes types de classes.
    mais j'ai un probleme à la compilation(g++)
    voici mon bout de code:

    //ceci est mon ".h"

    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
    #
    ifndef TVECTEUR_H
    #define TVECTEUR_H
     
     
     
    #include <stream.h>
    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <ctype.h>
    #include <values.h>
     
    template <class T> class TVecteur
    {
    	private:
    		T *data;
    		int nbrElem;
    	public:
    		TVecteur(int n);
    		~TVecteur(void){delete data;}
    };
    #endif
    et là mon ".cxx"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #include "TVecteur.h"
     
    template<class T> TVecteur<T>::TVecteur(int n)
    {
    	data = new T[n];
    	nbrElem = n;
    }
    l'erreur que j'ai à la compilation est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    /tmp/cc31Wl51.o: In function `main':main.cxx:(.text+0x61): référence indéfinie vers « TVecteur<int>::TVecteur(int)»
    collect2: ld a retourné 1 code d'état d'exécution
    je ne vois pas du tout d'ou vient le probleme.

    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Regarde la FAQ à la section sur les template et l'édition de lien

    PS: tes includes sont globalement soit dépréciés, soit venant du C. Et globalement, ils n'apportent rien au code que tu nous montres.
    PPS: new[] => delete[]
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Membre confirmé Avatar de alexorcet
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Par défaut
    et le message d'erreur ça vient de quoi à ton avis?j'ai essayé d'instancier manuellement les template (pragma .....)mais toujours le meme message d'erreur.

  4. #4
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Ca vient que tu n'as pas fais ce que je t'ai dis de faire -- pour une fois, je n'ai pas dis grand chose en plus
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    Et si tu met tout (tout le code quoi) dans le .h, qu'est-ce que ça donne?

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonjour,

    A mon avis, mettre tout le code dans le header, *.h .

    salut.

Discussions similaires

  1. probleme spécialisation template
    Par babar63 dans le forum Langage
    Réponses: 23
    Dernier message: 30/10/2007, 14h42
  2. probleme de template
    Par tarang dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 23/07/2007, 08h17
  3. Map et probleme de template
    Par sleigh dans le forum Langage
    Réponses: 2
    Dernier message: 21/05/2007, 11h04
  4. Map et probleme de template
    Par sleigh dans le forum C++
    Réponses: 2
    Dernier message: 21/05/2007, 11h04
  5. [phpBB] Template phpBB et/ou phpLib
    Par corwin dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 14/02/2006, 15h45

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