/* * Classe CWindow */ template <typename T> class CWindow: public CSingle [Résolu]

Signaler
Messages postés
442
Date d'inscription
jeudi 4 avril 2002
Statut
Membre
Dernière intervention
11 août 2008
-
Messages postés
442
Date d'inscription
jeudi 4 avril 2002
Statut
Membre
Dernière intervention
11 août 2008
-
Bonjour tout le monde,



Je suis en train de coder une classe et j'ai besoin de définir une méthode virtuelle pure.

Ma première question est quelle est la différence entre virtuel et virtuel pure ?



Ma deuxième question concerne le warning de compilation:

class CDeviceWindow' has virtual functions but non-virtual destructor



Un extrait du source vous aidera peut-etre:


<hr size= "2" width="100%">/*

* Classe CWindow

*/

template <typename T>

class CWindow: public CSingleton<T>

{

private:

protected:

public:

CWindow();

void init(void);

virtual void initInterface(void) = 0;

};

<hr size="2" width="100%">

J'utilise le compilateur g++ sous linux.


neodelphi

3 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Ben si tu as une fonction virtuelle pure dans ta classe, ta classe
devient abstraite, c'est à dire que tu ne peux pas créer d'objet
puisque tu as une fonction qui n'est pas définie. Elle doit etre
définit dans chaque classe héritant de cette classe abstraite. Mais
revois la programmation objet, une bonne documentation la dessus n'est
pas superflue.



Pour ton messasge d'erreur, tu as juste a rajouter virtual devant la déclaration de ton destructeur.
Messages postés
442
Date d'inscription
jeudi 4 avril 2002
Statut
Membre
Dernière intervention
11 août 2008

Désolé pour le titre il y a un copier/coller qui a du mal se passer...

neodelphi
Messages postés
442
Date d'inscription
jeudi 4 avril 2002
Statut
Membre
Dernière intervention
11 août 2008

Merci pour ton aide, la mise en virtual résout le problème.

neodelphi