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 :

problème avec les template c++


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 72
    Par défaut problème avec les template c++
    bonjour,

    je suis entrain de faire un projet sur des graphe en utilisant les template.

    j'ai fait une fonction qui teste si un objet (PElement<T>) appartient à une liste d'objet de type PElement<T>

    voila la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    template<class T>//remplacer par T
    bool PElement<T>::appartient(T * objetATester, PElement< T > * lSommets);
    voila l'appel de cette fonction dans une autre class : avec T un "char"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    template <class S, class T>
    Arete<S,T> * Graphe<S,T>::creeArete( Sommet<T> * debut, Sommet<T> * fin, const S & info)
    {
    Arete<S,T> * nouvelleArete;
     
    if (! PElement< Sommet<T> >::appartient(debut,lSommets) ) throw Erreur("début d'arête non défini");
     
    .
    .
    .
    .
    et voila le résultat de la compilation :
    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
    ClCompile:
    1>  Vecteur2D.cpp
    1>  main.cpp
    1>c:\users\...\desktop\client c++ sources\client-c++\graphe.h(137): error C3861: 'Erreur'*: identificateur introuvable
    1>          c:\users\...\desktop\client c++ sources\client-c++\graphe.h(134)*: lors de la compilation de la fonction membre 'Arete<S,T> *Graphe<S,T>::creeArete(Sommet<T> *,Sommet<T> *,const S &)' de la classe modèle
    1>          with
    1>          [
    1>              S=std::string,
    1>              T=char
    1>          ]
    1>          c:\users\...\desktop\client c++ sources\client-c++\main.cpp(46)*: voir la référence à l'instanciation de la classe modèle 'Graphe<S,T>' en cours de compilation
    1>          with
    1>          [
    1>              S=std::string,
    1>              T=char
    1>          ]
    1>  GElement.cpp
    1>  Erreur.cpp
    1>  Génération de code en cours...
    1>
    1>ÉCHEC de la build.
    1>
    1>Temps écoulé 00:00:02.38
    ========== Régénération globale*: 0 a réussi, 1 a échoué, 0 a été ignoré ==========
    merci de bien vouloir m'aider à comprendre l'origine du problème.

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Citation Envoyé par ton compilateur
    'Erreur'*: identificateur introuvable
    C'est clair, non? s'il ne connait pas le mot Erreur, donc c'est qu'il manque la déclaration de la fonction/du constructeur appelé.
    A priori, il te manque un #includePar ailleurs, PElement, ce n'est pas un nom de liste, nomme le Liste (voire truc::Liste, avec truc le nom de ton namespace)

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 72
    Par défaut
    ahh c'est vrai il manque bien #include"Erreur"

    je n'ai pas fait attention au mot 'Erreur' dans ma tête c'était le mot error de visualstudio lol

    merci à vous.

    là j'ai autre problème:

    voici une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    template <class T>
    class PElement
    {
    T * v;
    PElement<T> * s;
     
     
    //voici son constructeur :
    PElement( T * v, PElement<T> * s );
    ...
     
    }
    j'ai une méthode qui duplique cette liste de PElement<T>*.

    je voudrais faire en sorte que quand je duplique la cette liste alors même *v soit alloué

    c'est-à-dire pour chaque maillon de PElement<T> ça sera new PElement( new T(...), this->s);.

    mais qu'est ce que je met dans new T(...) pour l'objet pointé par v soit réalloué (donc après les maillons de la liste issue de la duplication ne pointent pas sur les même objet de la liste originale)



    merci d'avance pour vos réponses.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 463
    Par défaut
    Ne pas faire cela avec un constructeur mais avec une méthode type "DeepClone".

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 72
    Par défaut
    merci je vais fouiller de ce côté là

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les templates (patrons)
    Par bounadalvidal dans le forum Débuter
    Réponses: 3
    Dernier message: 09/04/2011, 07h14
  2. Problème avec les templates.
    Par mondaying dans le forum C++
    Réponses: 5
    Dernier message: 08/03/2011, 19h03
  3. [Xtext] Problème avec les templates pour les mots clé
    Par P1t0u dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 10/06/2010, 15h53
  4. Problème avec les templates de class
    Par _SamSoft_ dans le forum C++
    Réponses: 8
    Dernier message: 21/08/2008, 10h30
  5. Problème avec les templates
    Par F-fisher dans le forum C++
    Réponses: 7
    Dernier message: 28/06/2008, 16h04

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