problème avec le mot clé "virtual"
Bonjour , j'ai plusieurs questions, imaginons la hiérarchie suivante :
Classe mère: Avion ( abstraite )
Classe Fille: Combat ( abstraite )
Classe 'petite' Fille : F
J'instancie un objet F dans le main et aimerait afficher ses caractéristiques avec une méthode virtuelle implémentée dans la classe Mère.
Avion.h
Code:
1 2 3 4 5 6 7 8 9 10
|
class Avion{ // Classe abstraite!
protected:
//...
public:
Avion() {}
virtual ~Avion() {}
virtual void abstract() = 0;
virtual void Affichage(Avion &);
}; |
Avion.cpp
Code:
1 2 3 4 5
|
void Avion :: Affichage(Avion& a)
{
// ...
} |
Combat.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
#include "Avion.h"
class Combat : public Avion // Classe abstraite!
{
public:
Combat() {}[EDIT]
virtual ~Combat() {}
virtual void abstract () = 0;
virtual void Affichage() {}
protected:
//...
}; |
F.h
Code:
1 2 3 4 5 6 7 8 9 10 11
|
#include "Combat.h"
class F : public Combat{
public:
F() {}
~F() {}
void abstract() {}
void Affichage(F &);
private:
//...
}; |
F.cpp
Code:
1 2 3 4 5 6
|
#include "F.h"
void F::Affichage(F & avion)
{
Avion::Affichage(avion);
} |
Comment procéder ? :?
J'ai une erreur semblable à ça :
Code:
undefined reference to `vtable for F'
Est-ce que d'autres erreurs se cachent derrière en plus?
Merci de m'apporter vos lumières une fois de plus :)