/* * Classe CWindow */ template <typename T> class CWindow: public CSingle

Résolu
neodelphi Messages postés 442 Date d'inscription jeudi 4 avril 2002 Statut Membre Dernière intervention 11 août 2008 - 5 nov. 2005 à 17:21
neodelphi Messages postés 442 Date d'inscription jeudi 4 avril 2002 Statut Membre Dernière intervention 11 août 2008 - 6 nov. 2005 à 00:12
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

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
5 nov. 2005 à 20:29
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.
3
neodelphi Messages postés 442 Date d'inscription jeudi 4 avril 2002 Statut Membre Dernière intervention 11 août 2008
5 nov. 2005 à 17:29
Désolé pour le titre il y a un copier/coller qui a du mal se passer...

neodelphi
0
neodelphi Messages postés 442 Date d'inscription jeudi 4 avril 2002 Statut Membre Dernière intervention 11 août 2008
6 nov. 2005 à 00:12
Merci pour ton aide, la mise en virtual résout le problème.

neodelphi
0
Rejoignez-nous