Methodes virtuelles [Résolu] - C++ - Programmation
Marsh Posté le 27-12-2003 à 13:27:04
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
(edit : en c++, les (void) deviennent ())
Marsh Posté le 27-12-2003 à 13:31:34
BlackGoddess a écrit : virtual bool evaluate(void); >> c'est la déclaration, mais ta fonction virtuelle n'est pas définie |
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.
Marsh Posté le 27-12-2003 à 13:12:36
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 :
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