"Arrêter" la virtualité dans une hiérarchie de classe.
Salut!:D
Ce code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <iostream>
using namespace std;
class A{
public:virtual void f(){cout<<"A"<<endl;}
};
class B:public A{
public:void f(){cout<<"B"<<endl;}
};
class C:public B{
public:void f(){cout<<"C"<<endl;}
};
int main(void){
B* c=new C();
c->f();
system("pause");
return EXIT_SUCCESS;
} |
affiche "C" car la méthode "f" est "virtual" et cet attribut est propagé à toutes les classes dérivées.
Comment faire pour éviter la liaison dynamique afin que un objet de type "C" appelle la méthode "f" de la classe de base "B" tant que elle même n'est pas qualifié avec l'attribut "virtual"?
Merci.:D