Bonjour.
J'ai 3 classes: A, B et C.
C hérite de B qui hérite de A.
est-il possible de déclarer une fonction, func1(), pure virtuelle dans A, de sorte qu'elle soit instanciée en C, mais pas en B. En gros, qu'elle reste pure virtuelle "à travers B"?
En effet, si j'instancie func1() dans B, quitte à surcharger cette fonction en C, le risque est que si qqun doit un jour écrire des classes C2, C3,... qui héritent aussi de B, alors si cette personne n'instancie pas func1(), le compilateur le laissera faire (le goupil!)
La solution que j'ai imaginée, mais qui ne me plait pas du tout:
func1 est pure virtuelle en A. Elle est instanciée en B: elle appelle func2 qui est pure virtuelle en B et instanciée en C. Une sorte de "cascade" de fonctions pure virtuelle. Mais je ne trouve pas cette solution tres "propre" (si je dois rajouter des classes intermediaires entre B et C, il faut tout re-modifier)
Partager