Perso, j'aurais fait une factory qui renvoie une reference du type de la classe mère (humanoide) vers une instance d'une des 4 classes (nain, hobbit etc...).
La factory est un singleton avec une méthode du style
Code :
- Humanoide* FactoryPJ::CreeNouvelHumanoide() {
- Humanoide* instance = NULL;
- switch(unD4) {
- case 0 : instance = new Nain();
- //etc...
- }
- // tu peux en profiter pour abonner l'instance à toute sorte
- // d'evennements
- return instance;
- }
|
Il y a peut etre une autre méthode mais celle ci permet de découpler les classes (le hobbit n'a pas à connaitre le nain etc...)
---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran