20Fermer22
ZephLe 27/05/2008 à 09:22
C'est normal, le type de son conteneur est toujours ClasseDeBase quel que soit la valeur que tu y affectes (et même si, en l'occurrence, c'est une instance de ClasseHeritante ce que le compilo ne peut pas deviner).

Plusieurs solutions :
- Soit des templates
- Soit au lieu d'accéder directement à l'attribut, tu crées un getter et un setter que tu peux surcharger pour leur faire retourner un pointeur du bon type (ClasseHeritante et non pas ClasseDeBase) (par contre il y aura toujours un cast à faire dans ces getter/setter, ou bien il faudra dupliquer les attributs au fur et à mesure que tu hérites, la solution à base de templates est donc clairement plus propre)