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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
void Avion :: Affichage(Avion& a)
{
	// ...
}
Combat.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
 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