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 :

struct dans une class


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Par défaut struct dans une class
    j'ai besoin d'une information que je n'arrive pas a trouver dans mes recherches.
    je travail avec un x86 sous gcc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class Liste
    {
     public:
       Liste();
     private:
       struct maillon
       {
         int valeur;
         maillon *next;
       } premierMaillon, *dernierMaillon;
    }
    lorsque j'instancie dans mon main() ma classe Liste je sais qu'en mémoire j'aurai une struct de créé dans mon objet, soit 8 octets en mémoire.
    ma question, quelle différence a t-il entre premierMaillon et *dernierMaillon a part le fait que le pointeur prendra 4 octets mémoire.
    ici je ne parles pas de place en mémoire mais plus du fait que premierMaillon va t-il créer une struct en plus? (comme int a; va créer un entier) puisque le pointeur ne crée pas cette struct.
    cette question me viens du fait que j'ai une méthode de Liste qui ajoute une struct (une a la suite des autres, comme une pile) par un new.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    bool Liste::ajouter(int element)
    {
     maillon *nouveauMaillon;
     if ((nouveauMaillon = new maillon) == nullptr);
       return false;
     dernierMaillon->valeur = element;
     dernierMaillon->next = nouveauMaillon;
     nouveauMaillon->valeur = 0;
     nouveauMaillon->next = nullptr;
     dernierMaillon = nouveauMaillon;
     return true;
    }
    je me sers de la variable premierMaillon pour garder la référence sur la premiere struct créé tout au long de mon soft.
    merci d'apporté vos lumieres sur ma question.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ta structure liste ici contiendra un champ premierMaillon de type liste::maillon sans que tu aies à le créer séparément de ton objet liste.

    En gros, dans ton code, dernierMaillon pointera systématiquement sur un maillon "terminal".
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Ta structure liste ici contiendra un champ premierMaillon de type liste::maillon sans que tu aies à le créer séparément de ton objet liste.

    En gros, dans ton code, dernierMaillon pointera systématiquement sur un maillon "terminal".

    merci Médinoc. c'est bien ce que je croyais!

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/07/2005, 23h10
  2. classe dans une classe ?
    Par tut dans le forum UML
    Réponses: 23
    Dernier message: 25/06/2004, 15h00
  3. [Thread] Erreur dans une classe interne
    Par totof2308 dans le forum Général Java
    Réponses: 5
    Dernier message: 03/06/2004, 08h15
  4. Thread dans une classe ?
    Par Sephi dans le forum Threads & Processus
    Réponses: 7
    Dernier message: 07/03/2004, 18h16
  5. Fonction callback dans une classe
    Par julian_ross dans le forum MFC
    Réponses: 8
    Dernier message: 02/03/2004, 11h42

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