Partage
  • Partager sur Facebook
  • Partager sur Twitter

constructeur de copie surchargé ??

Sujet résolu
    5 mars 2008 à 19:16:47

    Salut à tous :)

    Je suis en train de faire une classe pour me faciliter la vie dans mes futurs programmes,et j'ai envie de faire une surcharge du constructeur un peu particulière.
    J'aimerai faire deux constructeurs qui créés chacun un objet avec des paramètre différent.

    J'ai donc deux questions:
    - Puis je surcharger un constructeur pour créer une instance totalement différente (différents attributs) de celle qui aurait été créée avec le constructeur par défaut ?
    - Puis surcharger le constructeur de copie ?

    ma question peut paraître un peu bizarre mais merci d'essayer d'y répondre =)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      5 mars 2008 à 19:19:36

      pour le constructeur de copie je croix pas que se soit possible (a verifier) aprés tu peut créer un autre constructeur si tu a envie sa y a pas de probléme
      • Partager sur Facebook
      • Partager sur Twitter
        5 mars 2008 à 19:26:14

        le constructeur de copie est une surcharge particuliere du constructeur -> Objet(const Objet &)
        • Partager sur Facebook
        • Partager sur Twitter
          5 mars 2008 à 19:29:45

          Donc je dois pouvoir faire un deuxième constructeur de copie?

          Sinon comment pourrait faire mon programme pour faire une copie d'une instance créée à partir du constructeur surchargé ?
          • Partager sur Facebook
          • Partager sur Twitter
            5 mars 2008 à 19:32:24

            Citation : the_matt

            Donc je dois pouvoir faire un deuxième constructeur de copie?



            Non.

            Citation : the_matt

            Sinon comment pourrait faire mon programme pour faire une copie d'une instance créée à partir du constructeur surchargé ?



            Donne-nous une exemple, parce que la je te suis pas.
            • Partager sur Facebook
            • Partager sur Twitter
              5 mars 2008 à 19:36:19

              Je ne pense pas que ce soit possible, le programme ne pourra pas les differencies
              Mais tu peux toujour creer une fonctoin void copy( class );
              • Partager sur Facebook
              • Partager sur Twitter
                5 mars 2008 à 19:40:57

                Je fais une classe pour gérer les objets 2D en SDL. Seulement il y a deux façon de créer un objet 2D en SDL: dessiner une surface ou charger une image et la blitter.

                Je voulais faire un constructeur qui prend en paramètre une variable position et une variable pour la taille de la surface, pour créer une surface.
                Et puis je voulais faire un constructeur qui, à la place de la taille de la surface prenne un tableau de char qui correspond au nom de l'image à charger.

                Ainsi en fonction des paramètres que l'on donne, soit on dessine une surface, soit on charge une image.
                Il s'agit bien de deux objets de la même classe mais ils n'ont pas les mêmes données, alors est ce que je peut utiliser un seul constructeur de copie dans ce cas là ???
                • Partager sur Facebook
                • Partager sur Twitter
                  5 mars 2008 à 19:48:38

                  Oui.
                  Mais attention, un SDL_Surface doit etre liberer, mais qu'une seule fois. Donc soit tu fais un compteur par reference (moi je ferais ca (boost::shared_ptr)) ou alors tu realloue ta surface et tu copie les pixels "à la main"
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 mars 2008 à 22:51:57

                    Le fait que tu veuilles avoir une même classe dont les attributs pertinents changent selon comme tu l'initialises me parait être une faute de design.

                    Ensuite, ce sont typiquement le genre de choses que l'on ne veut surtout pas copier. => interdis la copie et l'affectation.
                    • 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.

                    constructeur de copie surchargé ??

                    × 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