Salut!![]()
Ce code:
affiche "C" car la méthode "f" est "virtual" et cet attribut est propagé à toutes les classes dérivées.
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; }
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.![]()
Partager