Salut à tous,
J'ai un petit un petit soucis de compréhension d'un message d'erreur lors de la compilation de mon programme
J'ai definit un tableau de classe Dynamique.Cette classe possède elle même une variable membre alloué dynamiquement mais petit soucis.
voici mon code :
fichier Dynamique. h :
--------------------------------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class Dynamique { public : int i; int * Tableau; public: Dynamique(); Dynamique(int j); // contructeur Dynamique(const Dynamique &source); // constructeur par copie virtual ~Dynamique(); // destructeur Dynamique &operator=(const Dynamique &Dyn1); // opérateur d'affectation };
fichier Dynamique. cpp :
--------------------------------------------------------------------------------------
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 #include "Dynamique.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// Dynamique::Dynamique() { } //////////////////////////////////////////////////////////////////////////////////////////////// Dynamique::Dynamique(int j) { int i; Tableau=new int[j]; for(i=0;i<j;i++) Tableau[i]=i; return; } //////////////////////////////////////////////////////////////////////////////////////////////// Dynamique::Dynamique(const Dynamique &source) // Constructeur par copie { int k; i=source.i; Tableau=new int[source.i]; for(k=0;k>i;k++) Tableau[k]=source.Tableau[k]; return; } //////////////////////////////////////////////////////////////////////////////////////////////// Dynamique::~Dynamique() // Destructeur { delete [] Tableau; return; } //////////////////////////////////////////////////////////////////////////////////////////////// Dynamique &Dynamique::operator=(const Dynamique &source) // opérateur d'affectation { int k; i=source.i; Tableau=new int[source.i]; for(k=0;k>i;k++) Tableau[k]=source.Tableau[k]; return *this; }
le main :
enfin voici le message d'erreur :
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 #include "Dynamique.h" #include <stdio.h> #include <string.h> void main() { Dynamique *pDyn,*Inter; // Inter variable intermediaire int i,k=5,j=0; pDyn=new Dynamique[k]; /* déclaration d'un tableau de classe Dynamique de dim 5 */ for(i=0;i<k;i++) { Inter=new Dynamique(i); for(j=0;j<i;i++) printf(" Inter : %d element : %d \n",i,Inter->Tableau[j]); pDyn[i]=Inter; } // liberation de la mémoire delete [] Inter; for(i=0;i<k;i++) { delete [] pDyn;}; return; }
si je comprend bien, il n'arrive pas a voir la surchage de l'opérateur = que j'ai définit dans le classe Dynamique ...... \main.cpp(17) : error C2679 : binary '=' : no operator defined which takes a right-hand operand of type 'class Dynamique *' (or there is no acceptable conversion).
Merci pour vos explications et critiques de ce bout de code (et pour vos suggestions).
[Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]
Partager