Folco (./132) :
Oui. Mais dans quel cas faire des méthodes virtuelles ? Dans quel cas redéfinir certaines méthodes etc ? Est-ce que je vais utiliser des méthodes abstraites parce que c'est le seul moyen que me donne C++ pour faire les héritages que je veux, ou parce que stratégiquement c'est mieux pour mon programme ?
Question intéressante. Je dirais que le cas évident, c'est si les méthodes sont vraiment totalement différentes d'une fille à une autre => méthode abstraite
Dans les autres cas il faut sans doute que tu regardes ce qui est mieux au cas par cas et là je ne sais pas s'il y a une réponse toute faite

Folco (./132) :
Et maintenant que j'y pense, puisque je n'ai que deux types de classes filles, pourquoi ne pas écrire de classe mère, écrire directement StaticModule, et en dériver BattleModule tout en en surchargeant les méthodes ? Quest-ce que je pourrais y gagner ou y perdre ?
J'aurais tendance à dire que c'est le Mal absolu

(sans déconner hein). Déjà ce sera le gros bordel, car static module et battle module n'ont quand même pas grand chose à voir, et ensuite tu pourrais oublier de réécrire une méthode et t'aurais des mauvaises surprises. Et puis sinon, ou c'est en tout cas ce que j'ai compris, tu n'es pas censé créer de l'héritage parce que ça t'arrange (cf. points précédents et sans doute d'autres), mais c'est censé correspondre à une réalité. Or, un battle module n'est pas un type de static module mais un type de module... Si tu tiens vraiment à réécrire toutes les méthodes présente dans StaticModule, il te suffit de les définir dans Module et de ne pas les implémenter du tout... ça demande pas beaucoup de travail et c'est juste plus propre
