Bonjour,
je dispose d'une classe abstraite qui est héritée par 2 classes. La classe abstraite possède une méthode virtuelle pure avec une définition par défaut. Une des deux classes n'a pas la nécessitée de redéfinir la méthode virtuelle pure.
Le problème est que je me retrouve avec les messages d'erreurs suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 class Objet { public: Objet(int poid) { this->poid = poid; } virtual int getPoid() { return this->poid; } virtual int getPoidTotal() = 0 { return this->poid; }; private: int poid; }; class Fourchette : public Objet { public: Fourchette(int poid) : Objet(poid) {} }; class Bouteille : public Objet { public: Bouteille(int poid, int poidLiquide) : Objet(poid), poidLiquide(poidLiquide) {} int getPoidTotal() { return this->getPoid() + this->poidLiquide; } private: int poidLiquide; };
- La classe Fourchette est une classe virtuelle, elle ne peut pas être
instanciée.
- La classe Bouteille est une classe virtuelle, elle ne peut pas être
instanciée.
Je suis obligé de redéfinir les méthodes virtuelles pures dans mes classes filles pour que mon code compile.
Y a-t-il une solution pour ne pas avoir à redéfinir systématiquement mes méthodes virtuelles pures et ainsi pouvoir utiliser la définition par défaut de celles-ci ?
Merci d'avance pour votre aide.
Partager