Salut!

Ce code:
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
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.