'lut
Je me demandais pourquoi le type d'écriture suivante ne marchait pas vraiment en C++ alors que c'est ok en Java (par exemple):
Code :
- class A {
- public:
- void test();
- };
- void A::test() {
- cout << "AAAA" << endl;
- }
- class B : public A {
- ...
- public:
- void test();
- };
- void B::test() {
- cout << "BBBB" << endl;
- }
- ...
- A *monA;
- monA = new B();
- monA->test(); // ça m'affiche "AAAA"
|
J'aurais pensé que ce "typage dynamique" aurait fonctionné, j'aurais trouvé ça plutôt intelligent : on a construit l'objet monA avec B(), et à l'appel de la méthode, c'est la méthode de A (super-classe) qui est exécutée alors que j'aurais trouvé logique que ce soit la méthode de B (sous-classe).
Y'a-t-il une astuce ? ai-je fait une erreur ? est-ce une spécificité (/faille) du C++ ?
Merci d'avance
Message édité par trevor le 28-09-2006 à 00:14:45
---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net