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 :

operator= d'un class


Sujet :

C++

  1. #1
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut operator= d'un class
    j'aimerai juste savoir si lorsque l'on fait une class un operateur "=" est implisitement creer et ce qu'il fait.
    juste le egale des valeur?? Ca n'existe pas??

    merci.

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Dans une classe qui ne contient pas de declaration explicite d'un operator=, un operator= inline est defini implicitement par le compilateur avec la signature
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T& operator=(T const&);
    Il effectue une assignation membre a membre et n'est pas defini dans les cas ou ce n'est pas possible (membre reference, membre n'ayant pas d'operator= accessible).

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    L'opérateur = par défaut (si non défini dans la classe) fera de la recopie bit à bit de l'objet sources vers l'objet destination.
    Il vaut mieux le définir si des objets membres sont alloués pour éviter que deux même objets pointent vers la même zone mémoire (sachant que les membres alloués seront libérés par le destructeur).

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    c'est ce que je pensais merci.

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    L'opérateur = par défaut (si non défini dans la classe) fera de la recopie bit à bit de l'objet sources vers l'objet destination.
    Non, il affecte les données membres une à une via leur opérateur =.

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par ep31
    L'opérateur = par défaut (si non défini dans la classe) fera de la recopie bit à bit de l'objet sources vers l'objet destination.
    Non. Il utilise l'operator= des membres et des classes de base (je l'ai avais oubliees dans ma premiere reponse).

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Non, il affecte les données membres une à une via leur opérateur =.
    Oui pardon je m'étais mal exprimé.

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

Discussions similaires

  1. problème au niveau de operator+ d'une classe mint
    Par satrucci dans le forum Langage
    Réponses: 1
    Dernier message: 27/12/2011, 08h02
  2. Operator= dans une classe template de vecteur
    Par Voldeviejnd dans le forum C++
    Réponses: 3
    Dernier message: 17/12/2011, 09h07
  3. Operator= entre deux class
    Par agv13 dans le forum C++
    Réponses: 7
    Dernier message: 23/07/2011, 08h18
  4. Réponses: 17
    Dernier message: 03/06/2008, 13h19
  5. operator>> avec class
    Par maminova77 dans le forum C++
    Réponses: 4
    Dernier message: 25/04/2006, 18h47

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