Bonjour,
Ma question est quelque peu théorique car j'ai une solution mais qui ne me semble pas "pure".
Ce que j'appelle une interface est une spécification sans code associé (virtuelle pure) par exemple
class Interface
{
virtual int Run (void) = 0;
virtual ~Interface () = 0;
};
Malheureusement une classe comme celle-ci ne se linke pas dans mon environnement gcc sous MinGW (mais je suppose que c'est vrai avec d'autres compilateurs).
En effet si je déclare:
class Implementation : public Interface
{
Implementation();
virtual int Run (void);
virtual ~Implementation ();
};
int main()
{
Implementation Programme;
return Programme.Run();
}
Toute utilisation de Implementation va générer une référence à la fonction
Interface::~Interface qui n'existe pas.
Y a-t-il une solution à ce problème sans définir le destructeur (virtual ~Interface (){}) qui mettrait du code dans l'interface - certe pas beaucoup - qui perdrait ainsi son status d'interface pure ?
Je sais je suis un peu tatillon, mais une interface c'est juste une interface 