Partage
  • Partager sur Facebook
  • Partager sur Twitter

compréhension du cours c++

constructeur de copies

Sujet résolu
    18 juin 2007 à 11:17:01

    Citation : Mateo21

    En résumé, le prototype d'un constructeur de copie est :

    Code : C++
    Objet(const Objet &objetACopier);


    Le const indique juste qu'on n'a pas le droit de modifier les valeurs de l'objetACopier (c'est logique, on a juste besoin de "lire" ses valeurs pour le copier).



    Je ne comprends pas: le const s'applique à objet et pas à &objetACopier non?
    Auquel cas c'est objet qui ne peut pas être modifié et &objetACopier est modifiable,non ?

    J'ai l'impression que le code est l'opposé de ce que dit mateo (je me trompe surement, mais pourquoi je me trompe ?)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      18 juin 2007 à 12:05:57

      Non, M@teo a raison, le const s'applique ici à objetACopier, pas à l'objet lui-même (*this).
      Pour que le const s'applique à *this, c'est comme ça:

      void f() const;
      • Partager sur Facebook
      • Partager sur Twitter
        18 juin 2007 à 18:02:49

        Bah tu te trompe tout simplement parce que tu lis pas très bien le prototype, le & indique ici à une référence sur Objet laquelle sera constante.
        • Partager sur Facebook
        • Partager sur Twitter
          18 juin 2007 à 21:08:49

          je suis désolé, j'ai tout d'abord oublié de dire bonjour (je m'en suis rendu compte deux secondes après avoir posté, et je n'ai pas trouvé de fonction d'édition des posts).

          donc, pour commencer, bonjour.


          ce qui me choque dans le prototype c'est que le const soit avant objet

          pour moi un:
          Objet(Objet const &objetACopier);
          m'aurait parût plus naturel, si le const s'applique à &objetACopier et pas à objet.

          Je crois donc que je n'ai toujours pas compris .....

          :p
          • Partager sur Facebook
          • Partager sur Twitter
            19 juin 2007 à 1:29:20

            "const" s'applique à ce qui le précède. S'il n'y a rien avant, inverse avec ce qui suit et retour à la règle précédente... Et au final toute cette partie à gauche sert à définir le type de la donnée déclarée sur la droite de l'expression.
            • 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.
              19 juin 2007 à 11:42:29

              Je me suis rendu compte que je m'embrouillais bêtement, encore une fois bêtement après avoir posté, je me suis rendu compte qu'Objet n'étais pas un objet en lui même mais servait tout simplement à la déclaration de &objetACopier

              • Partager sur Facebook
              • Partager sur Twitter

              compréhension du cours c++

              × 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