Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un objet en tant qu'attribut d'une classe.

Constructeur de copie ou opérateur d'affectation ?

Sujet résolu
    3 juin 2007 à 15:53:21

    Voilà bonjour à tous !
    J'ai une petite question à vous posez, voilà je possède une classe Horaire et une classe Jour.
    Dans ma classe Jour j'ai deux attribut qui sont des Objets Horaire à savoir m_horaire_entrée et m_horaire_sortie.
    J'ai un constructeur de Jour qui a pour paramètres (Horaire &entrée, Horaire &sortie).
    Et ma question est la suivante dans le constructeur de Jour lorsque je vais écrire m_horaire_entrée = entrée;, est ce que ce sera le constructeur de copie de la classe Horaire qui sera appelé ou plutôt l'opérateur d'affectation ?
    Je pencherais pour l'opérateur d'affectation vu que le constructeur de copie n'est utilisable que lors de la création d'un objet mais d'un autre coté c'est lors de l'appel du constructeur que les objets m_horaire_entrée et m_horaire_sortie sont crées donc...
    En espérant avoir été le plus clair possible.
    Merci d'avance :) .
    • Partager sur Facebook
    • Partager sur Twitter
      3 juin 2007 à 16:21:30

      Il faut passer par les listes d'initialisation pour que ce soit le constructeur de copie qui soit utilisé pour des attributs.
      • 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.
        3 juin 2007 à 17:42:22

        Et si je ne passe pas par les listes d'initialisation ce sera alors l'opérateur d'affectation qui sera utilisé ?
        • Partager sur Facebook
        • Partager sur Twitter
          3 juin 2007 à 18:01:40

          Oui. Hors liste d'initialisation, il ne peut en être autrement pour un attribut. Tu paieras une construction par défaut suivie d'une affectation dans ton cas.
          • 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.

          Un objet en tant qu'attribut d'une classe.

          × 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