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++Builder Discussion :

Constructeur de copie d'une "sousClasse"


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 135
    Points : 66
    Points
    66
    Par défaut Constructeur de copie d'une "sousClasse"
    Bonjour,

    J'aurai pu placer cette discution ailleur que pour borland mais comme mon EDI est Borland.
    Voila j'ai créé deux Classes:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    class TEnfants
    {
        public:
           AnsiString    Nom;
           AnsiString    Prenom;
     
           TEnfants(const TEnfants &); // Constructeur de copie
    };
     
        TEnfants::TEnfants(const TEnfants &Enfant)
        {
            Nom     = Enfant.Nom;
            Prenom = Enfant.Prenom;
            return;
        }
     
    class TParents
    {
        public:
           AnsiString    Nom;
           AnsiString    Prenom;
     
           TEnfants     Enfant[10];
     
           TParents(const TParents &); // Constructeur de copie
    };
     
        TParents::TParents(const TParents &Parent)
        {
            Nom     = Parent.Nom;
            Prenom = Parent.Prenom;
     
            for(int i=0; i<10; i++)
            {
                Enfant[i] = ? <- comment écrire?
            }
     
            return;
        }
    Et mon soucis est qu'est ce que je dois mettre pour faire une copie exacte d'un TParents sachant que j'ai à copier 10 TEnfants?

    Je veux dans mon code pouvoir faire une copie comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        TParents MesParents = new TParents(SesParents);

    Merci de votre aide

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 51
    Points : 53
    Points
    53
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for(int i=0; i<10; i++)
            {
                Enfant[i] = Parent.Enfants[i];
            }
    Non ?

  3. #3
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonsoir
    voici une possibilité
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    const MaxEnfants =2;
    class CEnfant
    {
      public:
      CEnfant():Nom(""),Prenom(""){};
       CEnfant(const CEnfant &rhs){Nom=rhs.Nom;Prenom=rhs.Prenom;};
      ~CEnfant(){Nom="";Prenom="";};
       AnsiString GetNom(){return Nom;}
       AnsiString GetPrenom(){return Prenom;}
       void SetNom(AnsiString& nom){Nom=nom;}
       void Setprenom(AnsiString& prenom){Prenom=prenom;}
      private:
      AnsiString Nom;
      AnsiString Prenom;
    };
     
    class CParent
    {
      public:
       CParent():Nom(""),Prenom(""){};
       CParent(const CParent &rhs)
    	{
    	 Nom=rhs.Nom;
    	 Prenom=rhs.Prenom;
    	 for(int n=0;n<MaxEnfants;n++)
    	   Enfant[n]=rhs.Enfant[n];
    	 };
       AnsiString GetNom(){return Nom;}
       AnsiString GetPrenom(){return Prenom;}
       void SetNom(AnsiString& nom){Nom=nom;}
       void Setpreom(AnsiString& prenom){Prenom=prenom;}
       CEnfant GetEnfant(const int n){return Enfant[n];};
       void SetEnfant(const int n,AnsiString& nom,AnsiString& Prenom)
       {
    	  Enfant[n].SetNom(nom);
    	  Enfant[n].Setprenom(Prenom);
       }
     
      private:
      CEnfant Enfant[MaxEnfants];
      AnsiString Nom;
      AnsiString Prenom;
    };
    cordialement

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 92
    Points
    92
    Par défaut
    tu pourrais faire ça je pense



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void TParent(CEnfant * pTabEnfant)
    le pointeur devra pointé sur un tableau d'enfant

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/03/2009, 22h57
  2. [POO] constructeur de copie pour une liste
    Par oswalidos dans le forum C++
    Réponses: 8
    Dernier message: 29/10/2008, 09h39
  3. Réponses: 24
    Dernier message: 08/05/2008, 17h30

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