Bonjour tout le monde !
Je suis nouveau sur le forum et débutant en C++. J'ai besoin d'aide sur mon programme.
Je vous mets d'abord quelques parties de mon code
Voici ma classe "Plateau":
Mon problème , c'est comment implémenter le constructeur par copie et la méthode "operator=" avec tableau d'objet pareil ??
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 class Plateau { public : Plateau (); Plateau (int h=21, int l=51); Plateau(Plateau const& copiePlateau); // Constructeur de copie Plateau& operator=(Plateau const& copiePlateau); ~Plateau(); void affiche(); void affiche_fichier(); int getLargeur() const; private : int hauteur; int largeur; Etat **tab; };
J'ai essayé plusieurs et fait quelques recherches mais je trouve pas.
Voici quelques implémentations de mes constructeurs:
Vous verrez que j'ai commencé mais j'ai pas pu les finir.
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
45
46
47
48
49
50
51
52 Plateau::Plateau () : hauteur(21), largeur(51), tab(0) { tab = new Etat*[hauteur]; for (int i=0; i < hauteur; i++) tab[i] = new Etat [largeur]; } Plateau::Plateau (int h, int l) : hauteur(h), largeur(l) { if ((hauteur > 0 && largeur > 0) || (hauteur % 2 != 0 && largeur % 2 != 0)) { tab = new Etat*[hauteur]; for (int i=0; i < hauteur; i++) tab[i] = new Etat [largeur]; } else { hauteur = 21; largeur = 51; tab = new Etat*[hauteur]; for (int i=0; i < hauteur; i++) tab[i] = new Etat [largeur]; } } Plateau::Plateau (Plateau const& copiePlateau) : hauteur(copiePlateur.hauteur), largeur(copiePlateau.largeur), tab(0) { tab = new Etat (*(copiePlateau.tab)); } Plateau& Plateau::operator=(Plateau const& copiePlateau) { if (this != &copiePlateau) { hauteur = copiePlateau.hauteur; largeur = copiePlateau.largeur; delete tab; } return *this; } Plateau::~Plateau() { for (int i=0; i < hauteur; i++) delete tab[i]; delete []tab; }
J'ai aussi eu des idées comme utiliser une boucle pour copier le tableau case par case mais je sais si c'est pratique ou des fonctions comme "memcpy" ou autres.
Pour les autres méthodes implémentées aussi , si vous voyez des erreurs dites le moi.
Merci d'avance pour vos réponse.
Partager