Bonsoir à tous,
Je voulais savoir par quel moyen peut-on en c++ copier une instance d'une classe en modifiant certains de ces attributs; je m'explique: j'ai une classe Chat et je veux via une méthode Chat reproduction() copier une instance c1 en modifiant certains de ses attributs. Imaginons que mon chat a un attribut string couleur initialisé à "noir" et un attribut int vie initialisé à 7 et qu'en faisant Chat c2 = c1.reproduction(); cela me crée un nouveau chat c2 ayant une couleur grise mais qu'en même temps c1 perde 1 point de vie. J'ai essayé de décrémenter l'attribut force directement via le constructeur ou le constructeur de recopie sans succès car cela m'initialise le chat initial (c1) avec une force déjà rétrogradée avant reproduction (c1.force = 7) ce qui n'est conforme à ce qui est attendu, c'est à dire c1.force = 7.
Merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public: Chat (string nom = "Miaou", int force = 7, string couleur = "noir") : nom(nom), force(force), couleur(couleur) { } Chat (Chat const& c) : nom(c.nom), force((c.force)), couleur(c.couleur) {
Bien cordialement,
IT
Partager