Partage
  • Partager sur Facebook
  • Partager sur Twitter

Liste d'initialisation

Son utilité avec les références...

Sujet résolu
    25 septembre 2007 à 19:34:32

    Bonjour, en fait je me demande simplement à quoi peuvent bien servir les listes d'initialisation.
    En effet je commence à avoir pas mal de données membre dans mes classes et je trouve les listes d'initialisation peut lisible, j'ai donc cherché un peut et j'ai simplement trouvé que l'utilité des listes d'initialisation était pour initialiser une donnée membre qui serait une référence car c'est le seul moyen de le faire puisque une référence doit être initialisé à sa création.
    Or pour moi si je fais l'assignation entre les accolades j'initialise aussi cette donnée membre lors de sa création.

    Voilà donc je me demandais si quelqu'un n'aurait pas un éxemple (simple si possible, je débute) pour mettre en évidence cette avantage des listes d'initialisation.

    Au revoir et merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      26 septembre 2007 à 1:41:21

      C'est aussi nécessaire pour les membres non modifiables (déclarés avec un const).
      Cela évite de payer une constuction par défaut suivie d'une affectation ; on ne paie qu'une construction initialisante.

      Sauf quand je ne peux pas faire autrement, ce sont les listes d'initialisation que je privilégie.

      Pour ce qui est de la lisibilité, il suffit d'un peu d'imagination
      1. T::T( ...)
      2. : m_a (a)
      3. , m_b (b)
      4. , m_c (Toto(0))
      5. {
      6. }
      • Partager sur Facebook
      • Partager sur Twitter
      C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
        26 septembre 2007 à 19:08:36

        Merci, oui pour la présentation j'y ai pensé après avoir écrit mon méssage. Une vielle - et mauvaise - habitude de je ne sait d'où que j'ai gardé.

        Au revoir.
        • Partager sur Facebook
        • Partager sur Twitter

        Liste d'initialisation

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown