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 :

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;
 
}
enfin voici le message d'erreur :

... \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).
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 ...

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]