Erreur de compilation / comment on appelle une methode d'une class?

Erreur de compilation / comment on appelle une methode d'une class? - C++ - Programmation

Marsh Posté le 26-11-2002 à 17:36:13    

Bonsoir,
 
voici a koi ressemble mon code:

Citation :


class liste_pts {
 public:
 pt *premier;
 liste_pts();
 ~liste_pts();
 void ajouter(pt *);
};
 
void liste_pts::ajouter(pt *e) {
 e->suivant = premier;
 premier = e;
}
 
//definition d'une methode de la classe Fl_monobjet
int Fl_Monobjet::handle(int event) {
 pt *baba;
 baba = new pt(Fl::event_x(), Fl::event_y());
        liste_pts::ajouter(baba);
        return Fl_Widget::handle(event);
}


 
Bon j'ai supprime des lignes qui n'ont a mon avis rien a voir.
 
Quand je compile ca il me donne une erreur sur la ligne en gras:

Citation :

cannot call member fonction 'void liste_pts::ajouter(pt*)'


 
A votre avis qu'est ce qui ne va pas la dedans. C'est l'appelle de la methode liste_pts::ajouter qui n'est pas bonne??
 
Merci pour votre aide. :hello:

Reply

Marsh Posté le 26-11-2002 à 17:36:13   

Reply

Marsh Posté le 26-11-2002 à 17:41:58    

liste_pts *uneliste = new liste_pts;
uneliste->ajouter(...)
 
ou
 
liste_pts uneliste;
uneliste.ajouter(...)
 
il font donc que de là où on appelle la méthode ajouter on connaisse l'objet de type liste_pts


Message édité par antp le 26-11-2002 à 17:44:22

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-11-2002 à 22:57:58    

le methode liste_pts je l'ai defini dans le constructeur de la fonction Fl_Monobjet
 

Citation :


class Fl_Monobjet : public Fl_Widget {
  public:
 Fl_Monobjet(int, int, int, int, const char *);
 virtual int handle(int);
 virtual void draw();
 };
 
Fl_Monobjet::Fl_Monobjet(int x, int y, int w, int h, const char *label)  
 : Fl_Widget(x, y, w, h, label) {
 liste_pts *maliste;
 maliste = new liste_pts();

 }


 
si j'appelle ma methode ajouter par liste_pts->ajouter(baba); ou liste_pts.ajouter(baba); ca me donne une parse error

Reply

Marsh Posté le 26-11-2002 à 23:01:14    

bhen oui, tu ne peux pas appeler la méthode d'une classe, tu dois appeler la méthode de l'instance d'une classe (d'un objet), donc "maliste" et pas "liste_pts"


Message édité par antp le 26-11-2002 à 23:02:01
Reply

Marsh Posté le 26-11-2002 à 23:32:14    

donc faut que je mette maliste->ajouter(baba); ?

Reply

Marsh Posté le 26-11-2002 à 23:47:58    

oui

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed