Forum Programmation.c++ un probleme au niveau de l'execution des classes abstraites

Posté par  .
Étiquettes : aucune
0
23
juil.
2005
bonjour tout le monde
j'ai un probleme trés urgent sachant que je programme en c++ sous linux j'ai le probleme suivant.j'ai toujours un probleme d'execution si j'utilise une classe virtuelle pure
j'ai déclaré une classe simple :forme qui est une classe virtuelle pure
#ifndef _FORME _HH
#define _FORME _HH
class forme
{public:
forme(){};
virtual ~ forme()
virtual void afficher()
};
#endif
ce code est enregistré dans le fichier forme.h
j'ai déclaré ensuite
une classe point qui derive de la classe forme
#ifndef _POINT _HH
#define _POINT_HH
#include forme.h
class point : public forme
{
public:
point(int a,int b)
~point()
void afficher()
private:
int x;
int y;
};
#endif
ce code est enregistré dans le fichier point.h
ensuite dans le fichier point.cpp j'ai implementé les fonctions qui se trouvent dans le fichier point.h
#include <iostream.h>
#include <cstdio.h>
#include "forme.h"
#include "point.h"
point::point(int a,int b)
{x=a;
y=b;
}
void point:: afficher()
{cout << x;
cout << y;
}
comme je vous ai déjà dit je n'ai d'erreur de compilation mais le probleme se pose au moment de l'execution en signalant : undefined reference point virtual table.
j'attend votre aide
  • # Virtuelle et virtuelles pures.

    Posté par  . Évalué à 3.

    Visiblement, « forme » doit être totalement abstraite et ne l'est pas. Tes méthodes « ~forme » et « afficher » sont certes virtuelles mais cela ne dispense pas de les définir. Pour les rendre virtuelles pures, il faut que tu ajoutes « =0; » à la fin de la déclaration de chacune d'elles. Il doit aussi manquer quelques points-virgules mais c'est une autre histoire.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.