Polymorphisme ?
Si j'ai bien compris, tu as ça :
Code :
- class A
- {
- protected:
- C monAttribut;
- };
|
Et tu veux faire ça :
Code :
- class B : public A
- {
- protected:
- D monAttribut; // Avec D hérité de C
- };
|
Dans ce cas, tu changes monAttribut par un pointeur :
Code :
- class A
- {
- protected:
- C* monAttribut;
- };
|
Et ensuite, par exemple dans le C-tor de B, tu fais :
Code :
- monAttribut = new D(...);
|
D étant hérité de C, tu conserves les informations de D tout en considérant que c'est un type C, pour récupérer suffit de faire un static_cast (ou dynamic_cast, mais je pense que c'est plus approprié en statique).
---------------
Perhaps you don't deserve to breathe