Bonjour

ma question porte sur le polymorphisme et la résolution dynamique des types (ou du moins je crois ^^).

Imaginons que j'ai une classe Base et une classe Derivee qui hérite de Base.
J'ai une autre classe qu'on appellera C, qui a un attribut de type Base* . C a un constructeur du genre C(Base* b)
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
 
class Base
{
	//atributs de Base
}
 
class Derivee : public Base
{
	//atributs propre à Base
}
 
class C
{
	Base* baseOuDerivee;
 
	C(Base* b) {baseOuDerivee = b;}
}
Evidemment en construisant un objet C, je voudrais pouvoir lui donner une Base ou une Derivee (d'où le nom à 2 balles de l'attribut de C...).

Je peux construire des objets C en passant une Derivee au constructeur, mais impossible d'accéder aux attributs propres à Derivee. Les Derivee sont
castées en Base implicitement.
J'aimerais savoir comment résoudre ce problème (s'il est résolvable, of course)

Merci