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 :

cnstructeur par recopie


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 105
    Par défaut cnstructeur par recopie
    Bonjour à tous;
    je voudrais savoir comment créer un constructeur par recopie, car j'ai eu des prbolèmes de compilation:

    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
     
    class Exemple{
    private :
    string m_var1;
    int m_var2;
    string getVar1()={return m_var1;}
    int getVar2()={return m_var2;}
     
    Exemple(string var1, int var2){
    m_var1=var1;
    m_var2=var2;
    }
    Exemple(const Exemple & exemple)
    m_var1=exemple.getVar1();
    m_var2=exemple.getVar2();
     
    }
    je voudrais savoir comment recopie un objet a partir d'un pointeur
    Exemple* pExemple1=new Exempe("test",0);
    Exemple*pExemple=Exemple(*pExemple1);

    Merci à tous.

  2. #2
    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
    Ton constructeur par copie fonctionne très bien (même s'il pourrait être amélioré), d'ailleurs ton problème n'a rien à voir avec lui. Tu as juste oublié un "new" pour allouer ton instance dynamiquement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exemple* pExemple = new Exemple(*pExemple1);

  3. #3
    Membre expérimenté
    Avatar de David Fleury
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 253
    Par défaut
    Bonsoir,
    deux petits points quand même.
    1. dans ton cas, le constructeur de copie fournit par défaut te suffit.

    2. tu risques une erreur de compilation dans ton constructeur de copie
    à cause du const.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exemple(const Exemple & exemple)  // le const
    m_var1=exemple.getVar1();
    m_var2=exemple.getVar2();
    le const Exemple& ne t'autorise à n'utiliser que tes fonctions const sur ton instance exemple. Or getVar1 et getVar2 ne sont pas définies comme const dans ta classe. (un accesseur de type get devrait l'être).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string getVar1() const { return m_var1; }
    ...
    sauf erreur de ma part.

    sinon pour ta question, je ne suis pas sûr de ce que tu veux mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exemple ex2( *pExemple1 ); 
    // ou Exemple ex2 = Exemple( *pExemple1 ); 
    // identique dans ce cas
    Je ne sais pas si tu veux à tout prix un new.

Discussions similaires

  1. Réponses: 11
    Dernier message: 25/08/2006, 16h00
  2. Constructeur par recopie
    Par Bebert71 dans le forum C++
    Réponses: 13
    Dernier message: 18/05/2006, 15h08
  3. [Débutant] Constructeur par recopie pour TComponent
    Par Runlevel dans le forum C++Builder
    Réponses: 9
    Dernier message: 06/05/2006, 16h58
  4. Constructeur par recopie
    Par KernelControl dans le forum C++
    Réponses: 2
    Dernier message: 29/12/2005, 12h24
  5. Constructeur par recopie
    Par sdebrois dans le forum Composants VCL
    Réponses: 13
    Dernier message: 21/10/2004, 14h47

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