Compilation avec des fonctions virtuel pure
Bonjour,
Je suis entrain de mettre en place un ensemble de classes générique. Mais certaines fonctions doivent obligatoirement être surcharchés pour que le programme fonctionne correctement.
D'où l'utilisation de fonction virtuel pure.
Par contre, je viens de faire un test, j'ai créer une classe fille sans les fonctions virtuel pure et je n'ai AUCUNE erreur de compilation.
C'est pas normal !!! Le principe c'est justement d'avoir des erreurs. Non ?
Voici le code de la classe mère :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| class CGraphObjCfg;
class CGraphObjContext;
class CGraphObj : public CObject
{
public:
// Constructeurs
CGraphObj(CGraphObjContext * pContext);
// Destructeur
virtual ~CGraphObj() = 0;
// Duplication
// -----------
// Permet de copier les données de 'pSrc' vers l'objet courant
virtual void Copy ( CGraphObj * pSrc ) = 0;
// Permet de créer un objet identique (classe & données) à l'objet courant
virtual CGraphObj * Clone ( ) = 0;
protected:
// Gestion de la configuration
// ---------------------------
// Ajout la configuration 'pConfig' dans la liste
int AddConfig ( CGraphObjCfg * pConfig );
// Permet de supprimer une configuration, sélectionnée par 'nIndex', de la liste
// Elle peut, selon 'bDelete', supprimer la configuraiton de la mémoire
BOOL RemoveConfig ( int nIndex, BOOL bDelete = TRUE );
// Retourne la configuration sélectionné par 'nIndex'
CGraphObjCfg * GetConfig ( int nIndex );
// Contexte d'utilisation de l'objet courant
CGraphObjContext * m_pContext;
private:
// Liste des configuraitons de l'objet courant
CArray < CGraphObjCfg *, CGraphObjCfg * > m_arpConfigs;
}; |
Et le code de la classe fille:
Code:
1 2 3 4 5 6 7 8 9 10 11
| class CGraphObjContext;
class CGraphObjLabel : public CGraphObj
{
public:
// Constructeurs
CGraphObjLabel(CGraphObjContext * pContext);
// Destructeur
virtual ~CGraphObjLabel();
}; |
Re: Compilation avec des fonctions virtuel pure
Citation:
Envoyé par vanitom
Bonjour,
Je suis entrain de mettre en place un ensemble de classes générique. Mais certaines fonctions doivent obligatoirement être surcharchés pour que le programme fonctionne correctement.
D'où l'utilisation de fonction virtuel pure.
Par contre, je viens de faire un test, j'ai créer une classe fille sans les fonctions virtuel pure et je n'ai AUCUNE erreur de compilation.
C'est pas normal !!! Le principe c'est justement d'avoir des erreurs. Non ?
Ce qu'il n'est pas possible de faire, c'est d'instancier une classe avec des membres virtuels purs.