Bonjour,
Dans le code suivant:
Je déclare la classe CTest avec une fonction virtuelle pure (la fonction MaFonction) mais le compilateur me laisse créer une implémentation de cette fonction. Par contre, lorsque j'essaye d'instancier cette classe de base, le compilateur génère une erreur normale "error C2259: 'CTest'*: impossible d'instancier une classe abstraite"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class CTest { public: CTest(); ~CTest(); virtual void MaFonction(void) = 0; }; CTest::CTest() { } CTest::~CTest() { } void CTest::MaFonction(void) { }
Quel sens cela peut-il avoir de déclarer dans la classe de base un fonction virtuelle pure ET d'avoir une implémentation de cette fonction aussi dans la classe de base.
Comment se comportent les autres compilateurs (je suis sur Visual Studio 2005 C++ en niveau de warning le plus élevé)
Merci de vos réponses
Partager