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 :

Coder une liste chaînée d'objets.


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Jean_Benoit
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 499
    Par défaut Coder une liste chaînée d'objets.
    Bonjour,
    Je suis en train de bosser sur un exercice de Vasiliu C++, (sa solution est en C)
    Je ne sais pas comment coder le pointeur sur objet pour lui passer l'adresse de l'objet suivant.
    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
     
    class PodeMother{
    	int Pode_data;
    	public:
    	PodeMother( int initial_n );
    	~PodeMother();
    	void printPode_data( void );
    	PodeMother* next;
    };
     
    /* L I B */
    PodeMother::PodeMother( int initial_n ) {
    	Pode_data = initial_n;
    	cout << "Constructor de PodeMother\n";
    }
    PodeMother::~PodeMother() {
    	cout << "Destructor de PodeMother\n";
    }
    void PodeMother::printPode_data( void ){
    	cout << "Valeur de Pode_data :\t" << Pode_data << "\n";
    }
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int dummy = 0;
    	PodeMother pd1( 43 );
    	pd1.printPode_data();
    	pd1.next = NULL;
                 // il faudrait assigner l'adresse du nouvel objet à un nouveau pointeur appartenant à l'objet père.
    	pd1.next = new PodeMother( 666 );
    	pd1.printPode_data();
    	cout << "\nFIN DU PROGRAMME: ENTREZ UN ENTIER S.V.P.: ";
    	cin >> dummy;
    	return 0;
    }
    1) Je voulais l'appeler node_mother, mais VSC++ insiste pour mettre le tilde sur le N ---> Ñ (El Destructor)
    2) printPode_Data affiche deux fois 43.
    Merci si vous avez une réponse.

  2. #2
    Membre chevronné
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Par défaut
    C'est tout à fait normal qu'il t'affiche 2 fois 43, vu que tu appelles la même méthode, et que tu ne modifie pas la variable (qui contient 43).

    Ceci devrait te renvoyer 666:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pd1.next->printPode_data();
    Cependant je ne comprend pas l'utilité d'un tel code.

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Utilise std::list

  4. #4
    Membre éclairé Avatar de Jean_Benoit
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 499
    Par défaut
    Effectivement, j'ai réussi à faire tourner ta solution,
    en déclarant next:
    Utilité: les objets connaissent l'adresse du suivant, ça peut servir...

  5. #5
    Membre éclairé Avatar de Jean_Benoit
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 499
    Par défaut
    Merci du tuyau Loufoque, on dirait que <vector> serait une branche de std::list, d'après la syntaxe "push_back"?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Par défaut
    Citation Envoyé par Jean_Benoit
    on dirait que <vector> serait une branche de std::list, d'après la syntaxe "push_back"?
    Non, vector et list sont deux conteneurs bien distincts, mais dont une partie de l'interface est similaire. Pour les conteneurs de la SL et comment les choisir, voir la FAQ

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

Discussions similaires

  1. Inversion d'une liste chaînée
    Par sossomj dans le forum Pascal
    Réponses: 10
    Dernier message: 25/06/2006, 15h51
  2. select sur une liste chaînée
    Par wtfu dans le forum Langage SQL
    Réponses: 1
    Dernier message: 01/06/2006, 15h30
  3. Implémentation d'une liste chaînée
    Par Yux dans le forum C
    Réponses: 22
    Dernier message: 02/03/2006, 20h31
  4. Réponses: 16
    Dernier message: 19/11/2005, 16h47
  5. Insertion d'un noeud dans une liste chaînée
    Par habib106 dans le forum Assembleur
    Réponses: 8
    Dernier message: 07/04/2004, 22h34

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