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 :

construction par copie


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut construction par copie
    Bonjour,

    j'ai déclaré une classe A dans la quelle j'ai défini un constructeur par copie, je veux appeler ce constructeur dans une autre classe.
    Il faut ecrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A a1,a2;
    	a1=A(aa1);
    	a2=A(aa2);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	A a1(aa1);
    	A a2(aa2);
    ou tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A a1,a2;
    	a1=aa1;
    	a2=aa2;
    Merci de m'expliquer quel code choisir càd quel code est correct

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 118
    Points : 158
    Points
    158
    Par défaut
    En supposant que l'optimisation de copy elision est désactivé, a1=A(aa1) va appeler les méthodes suivantes de ta classe:

    1) A(A const&) pour A(aa1).
    2) A operator=(A&&) (en priorité) si ce dernier est défini, sinon A operator=(A const&) pour a1=....


    Ce code appellera :

    1) A(A const&).


    et enfinCe code appellera :

    1)A operator=(A const&).


    Ainsi pour appeler ton constructeur par copie, tu peux au choix utiliser l'une de ces écritures :

    1)A a(aa1).
    2)A a = aa1.

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

Discussions similaires

  1. Faire une sauvegarde par copie de fichier, est-ce fiable ?
    Par guidav dans le forum Administration
    Réponses: 5
    Dernier message: 04/09/2006, 10h17
  2. Passage par copie vs passage par référence
    Par bolhrak dans le forum C++
    Réponses: 11
    Dernier message: 20/08/2006, 23h37
  3. Réponses: 3
    Dernier message: 27/04/2006, 08h03
  4. Constructeur par copie et std::list
    Par Captain_JS dans le forum SL & STL
    Réponses: 5
    Dernier message: 13/12/2005, 19h15
  5. [deb.]Constructeur par copie
    Par Marc_3 dans le forum Débuter
    Réponses: 4
    Dernier message: 19/11/2005, 13h33

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