[Héritage] Downcasting et méthodes virtuelles
Salut à tous!
Une petite question simple:
Soit une classe A définissant "une interface":
Soit B une classe fille de A, avec en plus une méthode spécialisée, n'exstant pas dans A:
Code:
1 2 3 4 5 6 7 8 9
| class A
{
foo();
};
class B : public A
{
foo2();
}; |
main.cpp:
Code:
1 2 3 4 5 6
|
int main()
{
A * a;
a->foo2(); // Impossible ?
} |
Le downcasting n'est pas implicite ? 8O
Sachant qu'on est sur d'avoir affaire à un objet B? J'ai essayé avec un dynamic_cast, mais le compilo veut rien savoir ! ;)
EDIT : Résolu avec:
Code:
1 2 3 4 5 6
|
int main()
{
A * a;
dynamic_cast<B>(a)->foo2();
} |