erreur non comprise cherche solution
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:
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:
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:
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 :
Citation:
... \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]