Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
990 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Résolu] Methodes virtuelles

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Methodes virtuelles

n°597444
calimerot
Posté le 27-12-2003 à 13:12:36  profilanswer
 

Salut ! Je vous pose un pb dont j'ai bien du mal de trouver la solution .
 
Ca concerne les méthodes virtuelles et l'héritage.
 
En fait ,si jamais j'écrit le .h suivant :
 

Code :
  1. class A {
  2.     public:
  3.         A(void);
  4.         virtual bool evaluate(void);
  5.         virtual void go(void);
  6. };


Est il alors nécessaire de spécifier des lignes de codes dans le .c associé , pour les méthodes virtuelles ?
 
Mon pb pour le moment c'est que j'ai cette classe A ,  et deux classes B et C qui en héritent .. mais j'ai un pb au linkage .
Les erreurs se rapportent aux objets B.o et C.o (leur compilation ne pose pas de pb) et j'ai une erreur du type :  
B.o (.gnu.linkonce. ..(j'en passe) : In function A::A[not-in-charge]()
undefined reference to `vtable for A`
undefined reference to `typeinfo for A`
C.o (.gnu.linkonce. ..(j'en passe) : In function A::A[not-in-charge]()
undefined reference to `vtable for A`
undefined reference to `typeinfo for A`
 
Merci par avance à l'âme charitable qui saura m'aiguiller.
@+
cali.


Message édité par calimerot le 27-12-2003 à 13:31:55
mood
Publicité
Posté le 27-12-2003 à 13:12:36  profilanswer
 

n°597454
blackgodde​ss
vive le troll !
Posté le 27-12-2003 à 13:27:04  profilanswer
 

virtual bool evaluate(void); >> c'est la déclaration, mais ta fonction virtuelle n'est pas définie
tu peux faire :
 
virtual bool evaluate() = 0; >> virtuelle pure
virtual bool evaluate() {} >> virtuelle triviale
virtual bool evaluate() { cout << "coucou !" << endl; } >> virtuelle avec du code dedans :p
 
(edit : en c++, les (void) deviennent ())


Message édité par blackgoddess le 27-12-2003 à 13:28:12

---------------
-( BlackGoddess )-
n°597457
calimerot
Posté le 27-12-2003 à 13:31:34  profilanswer
 

BlackGoddess a écrit :

virtual bool evaluate(void); >> c'est la déclaration, mais ta fonction virtuelle n'est pas définie
tu peux faire :
 
virtual bool evaluate() = 0; >> virtuelle pure
virtual bool evaluate() {} >> virtuelle triviale
virtual bool evaluate() { cout << "coucou !" << endl; } >> virtuelle avec du code dedans :p
 
(edit : en c++, les (void) deviennent ())


 
Ok , merci , ça marche maintenant . Il me manquait effectivement la définition des méthodes ..mais je ne voyais pas comment la faire.
 
Merci bien .
Cali.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Résolu] Methodes virtuelles

 

Sujets relatifs
Répertoire courant de l'application [résolu][MySQL] comment configurer ma base pour mon projet [resolu]
probleme d'installation de jbuilder9 [résolu]Choix d'un répertoire avec JFileChooser [resolu]
[RESOLU] Save JPanel As ?Exercice d'algo [probleme resolu par Tentacle, algo p2 poste par Giz]
Image [inline], Mise à l'échelle [résolu] et Propagation de paramètres[resolu]preg_replace petit soucis
[PYTHON]Ecrire dans un terminal caractère par caractère [ RESOLU ]Aide sur les surcharges de méthodes
Plus de sujets relatifs à : [Résolu] Methodes virtuelles


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR