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 constructeur copie noeud (arbre)


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut problème constructeur copie noeud (arbre)
    bonjour tout le monde.
    je code un arbre binaire et j'ai un problème dans mon constructeur de copie de noeud. (il faut dire que je suis plutot habituer au java et avec le C++ j'ai plutôt du mal)

    je vous met le code source :
    Code noeud.h : 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
    class noeud {
     
    private:
    	char val[10];
    	noeud *inf();
    	noeud *sup();
     
    public:
        noeud(const noeud &n);
    	noeud(noeud &n,std::string a, std::string b);
     
    	noeud(std::string a, std::string b, std::string c);
    	noeud(std::string a);
    	virtual ~noeud();
     
    	int calcul(void);
    };

    Code noeud.cpp : 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
    #include "noeud.h"
     
    noeud::noeud(const noeud & n){
     
        inf = new noeud(n.inf);
        sup = new noeud(n.sup);
        val = n.val;
     
    }
     
    noeud::noeud(noeud &n,std::string a, std::string b){
    	inf = new noeud(n);
    	val = a;
    	sup->b;
    }
    etc...

    le problème se trouve au niveaux de inf = new noeud(n.inf);
    le constructeur de copie se rappel lui même dans le nœud qui suit ect.
    voila le msg du compilateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    |12|error: no matching function for call to `noeud::noeud(<unknown type>)'|
    |25|note: candidates are: noeud::noeud(std::string)|
    |24|note:                 noeud::noeud(std::string, std::string, std::string)|
    |22|note:                 noeud::noeud(noeud&, std::string, std::string)|
    |21|note:                 noeud::noeud(const noeud&)|
    il ne reconnait apparemment pas n.inf mais je ne vois pas coi faire pour résoudre le problème.
    Merci de votre aide!

  2. #2
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Bonjour,
    Il y a une petite erreur, ce code...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private:
       noeud* inf();
    déclare une fonction membre nommée inf ne prenant aucun argument et renvoyant un noeud*.
    Donc ici...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inf = new noeud(n.inf);
    le compilo est complètement perdu car il ne connait pas le type de la donnée membre inf (qui n'existe pas ) donc il ne sait pas quel constructeur choisir.

Discussions similaires

  1. [Arbre de decision] Problème avec les noeuds
    Par hollowdeadoss dans le forum R
    Réponses: 2
    Dernier message: 11/03/2013, 11h33
  2. Problème constructeur par copie listes chainées
    Par Nicoclem dans le forum C++
    Réponses: 4
    Dernier message: 10/04/2008, 11h44
  3. [XSL] problème avec copy espace de nom
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/10/2005, 15h18
  4. Problème de copie de string dans string
    Par kazarn dans le forum SL & STL
    Réponses: 17
    Dernier message: 15/03/2005, 18h35

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