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 :

Constructeur de copie et operator=


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 80
    Points : 46
    Points
    46
    Par défaut Constructeur de copie et operator=
    Bonsoir,

    j'aurai besoin d'une confirmation ou d'une correction sur le fonctionnement interne de se bout de code,merci de m'aider s'il vous plait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
     
    A a;
     
    a = lol();  
     
    // est-ce que le fonctionnement interne de cette affectation est ça ?
    // a.son_constructeur_de_copie(b);
    // a.operator=(b);
     
     
    A lol() {
     A b;
     return b;
    }

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 746
    Points : 3 667
    Points
    3 667
    Par défaut
    Pas vraiment. Ici il n'y aura ici que l'affectation de déplacement. Si l'opérateur de déplacement n'existe pas, le compilateur utilise celui de copie.
    Le constructeur de copie/déplacement n'est pas utilisé grâce à la RVO.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 80
    Points : 46
    Points
    46
    Par défaut
    ah ok donc si j'ai bien compris sans la RVO ça donne cela ?
    merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    A a;
     
    a = lol();  
     
    // appelle du constructeur de A (pour A a;)
    // appelle du constructeur de A (pour A b;)
    // objet_temporaire_anonyme.son_constructeur_de_copie(b)
    // destruction de l'objet b
    // a.operator=(objet_temporaire_anonyme)
    // destruction de l objet temporaire anonyme
    // destruction de l'objet a
     
     
    A lol() {
     A b;
     return b;
    }

  4. #4
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 746
    Points : 3 667
    Points
    3 667
    Par défaut
    Exactement.

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

Discussions similaires

  1. constructeur de copie OR operator= ?
    Par foolib dans le forum C++
    Réponses: 15
    Dernier message: 04/10/2009, 21h27
  2. Réponses: 3
    Dernier message: 24/04/2005, 15h19
  3. [C++]Heritage et constructeur de copie
    Par matazz dans le forum C++
    Réponses: 2
    Dernier message: 25/03/2005, 13h31
  4. Constructeur de copie modifiant le paramètre ?
    Par Nicodemus dans le forum C++
    Réponses: 4
    Dernier message: 12/01/2005, 22h25
  5. Constructeur de copie et Template: Transtypage
    Par ikkyu_os dans le forum Langage
    Réponses: 9
    Dernier message: 26/12/2004, 23h29

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