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 :

constructeur et constructeur de copies list<NoeudGeneral<T>> STL


Sujet :

C++

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    D�tails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Par d�faut constructeur et constructeur de copies list<NoeudGeneral<T>> STL
    Bonjour j'ai un probleme avec un projet en C++ en faite je ne sais pas comment faire mon constructeur et constructeur de copie. Dans mon hpp j'ai les declarations suivantes :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    T info;        // information ou valeur du noeud
     list< NoeudGeneral<T> * > * sousArbres;  // pointeur vers la liste des pointeurs vers les sous-arbres
    maintenant mon constructeur a l'entete :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    /**
     * Construit un noeud feuille
     */
    template <class T>
    NoeudGeneral<T> :: NoeudGeneral ( const T & elem ) {
     
    sousArbres = new list<NoeudGeneral<T>>();
    sousArbres->push_front(NoeudGeneral<elem>);
     
    }

    et mon constructeur de copies :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    /**
     * Construit une copie du noeud a
     */
    template <class T>
    NoeudGeneral<T> :: NoeudGeneral ( const NoeudGeneral & a ){
    }
    Est-ce que quelqu'un pourrais me dire si mon constructeur est bon et comment faire le constructeur de copie SVP

  2. #2
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Salut et bienvenu,
    Pourquoi avoir une liste par pointeur et non par valeur ? En g�n�ral, les conteneurs se stockent par valeur.
    Pour la copie, cela d�pend de la s�mantique de copie que tu veux. Soit tu veux partager le m�me pointeur avec chaque copie, et je te conseille alors d'utiliser un pointeur intelligent existant impl�mentant un compteur de r�f�rence (boost::shared_ptr par exemple). Soit la copie cr�e de nouveaux �l�ments � partir des premiers, et l� il te faut une fonction 'clone' pour effectuer la copie de chaque �l�ment.
    Avec la premi�re solution, une liste par valeur et l'utilisation d'un pointeur intelligent, alors tu n'as plus besoin de constructeur par copie car la copie est g�r�e correctement par ceux-ci.
    Tu peux regarder :
    -> F.A.Q. : Qu'est-ce qu'un pointeur intelligent ?
    -> F.A.Q. : Comment g�rer proprement des allocations / d�sallocations de ressources ? Le RAII !
    -> Tutoriel : Pr�sentation des pointeurs intelligents en C++, par Lo�c Joly
    -> Tutoriel : Boost.SmartPtr : Les pointeurs intelligents de Boost par Matthieu Brucher

Discussions similaires

  1. R�ponses: 3
    Dernier message: 22/03/2011, 12h56
  2. R�ponses: 4
    Dernier message: 10/04/2008, 11h44
  3. R�ponses: 46
    Dernier message: 14/03/2007, 17h47
  4. R�ponses: 4
    Dernier message: 02/10/2006, 09h32

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