Salut,j'ai un petit probléme de compilation,j'ai essayé beacoup de facon,mais ca veut pas se compiler,
#include <iostream>
using namespace std;
class Point
{
public :
int x(void) const
{
return x_;
}
int y(void) const
{
return y_;
}
void deplacerVers(int versX, int versY)
{
x_ = versX;
y_ = versY;
}
void deplacerDe(int surX, int surY)
{
deplacerVers(x_ + surX, y_ + surY);
}
static int NombrePoints(void)
{
return NombrePoints_;
}
void print(void) const ;
~Point();
public:
int x_;
int y_;
static int NombrePoints_;
};
class objetgraphique
{
public:
int couleur;
int epaisseur;
static int nbobjetgraphiques;
Point p;
Point &PointDeBase(){
return p;}
int Couleur(){return couleur;}
int Epaisseur(){return epaisseur;}
void modifiertrace(int nouvellecouleur,int nouvelleepaisseur){
couleur=nouvellecouleur;
epaisseur=nouvelleepaisseur;
}
objetgraphique(){};
objetgraphique(int X,int Y,int ccouleur,int eepaisseur)
{
p.x_=X;
p.y_=Y;
epaisseur=eepaisseur;
couleur=ccouleur;
}
virtual void afficher() =0;
};
class Cercle : public objetgraphique{
public:
int rayon;
int Rayon(){return rayon;}
void ModifierRayon(int NouveauRayon){rayon=NouveauRayon;}
void afficher(){ cout<<"Le rayon du cercle est rayon ";}
~Cercle(){cout<<"Objet efface";}
Cercle(){};
Cercle(int RRayon):objetgraphique(x_,y_,couleur,epaisseur)
{
rayon=RRayon;
}
};
int main (int argc, char *argv[])
{
Cercle *p=new Cercle(10);
cout<<p->rayon;
delete p;
getchar();
}
l.cpp: In constructor `Cercle::Cercle(int)':
l.cpp:121: error: `x_' undeclared (first use this function)
l.cpp:121: error: (Each undeclared identifier is reported only once for each function it appears in.)
l.cpp:121: error: expected primary-expression before "int"
l.cpp:121: error: expected primary-expression before ')' token
make.exe: *** [l.o] Error 1
Par contre quand je met ce constructeur pour la classe Cercle :
Cercle(int RRayon)
{
rayon=RRayon;
}
,
a la place de celui d'en haut,j'ai cela comme erreur:
[Linker error] undefined reference to `Point::~Point()'
Message édité par nohack le 25-10-2005 à 19:36:13