J´ai une erreur que je ne comprend pas en C++ lors de la compiltation de mon programme je vais vous donner tous les elements :
objet.hpp
typedef struct
{
unsigned int x,y;
}cple;
class Objet
{
cple c;
public :
Objet();
~Objet();
void setPosition(int x,int y);
cple getPosition(void) const;
};
mur.hpp
- ifndef _mur_h
- define _mur_h
- include " objet.hpp"
class Mur : public Objet
{
public :
char getSymbole();
bool getEcrasable() const;
};
- endif
simulateur.hpp
- ifndef _simulateur_h
- define _simulateur_h
- include " mur.hpp"
- include < iostream>
using namespace std;
class Simulateur
{
Objet *tab[10][10];
public :
Simulateur();
~Simulateur();
void afficheDamier() const;
};
- endif
et voila les cpp :
simulateur.cpp
- include " simulateur.hpp"
Simulateur:: Simulateur()
{
cout < <"creation d´un damier"<<endl;
for ( int i=0; i<10; i++)
{
for ( int j=0; j<10; j++)
{
tab[i][j]= new Mur;
}
}
};
void Simulateur:: afficheDamier() const
{
for ( int i=0;i<10;i++)
{
for ( int j=0;j<10;j++)
cout < <" " <<tab[i][j].getSymbole()<<" " ;
cout < <endl;
}
};
mur.cpp
- include " mur.hpp"
char Mur:: getSymbole()
{
return ´M´;
};
bool Mur:: getEcrasable() const
{
return 0;
};
- include " objet.hpp"
void Objet:: setPosition(int x, int y)
{
c.x=x;
c.y=y;
};
cple Objet:: getPosition(void) const
{
return c;
};
et enfin mon code de test
- include " simulateur.hpp"
void test(void)
{
Simlateur S;
S.afficheDamir;
}
int main(void)
{
test();
}
voila je compile ac G++ 3.3 t voila l´erreur que cela me donne :
simulateur.cpp:21: error: request for member `getSymbole´ in `
this->Simulateur::tab[i][j]´, which is of non-aggregate type `Objet* const´
make: *** [simulateur.o] Erreur 1
make: Warning: File `objet.o´ has modification time 6,4e+03 s in the future
make: La cible all n´a pas pu tre refabrique cause d´erreurs.
make: AVERTISSEMENT: changement d´horloge dtect. La construction peut tre incomplte.
Compilation exited abnormally with code 2 at Sun May 8 15:26:27
si qqun peut m´aider je suis preneur