Bonjour,

Je suis sous C++ builder 5.02.

Lorsque je compile le code suivant j'obtient le warning :
'D::f(int)' hides virtual fonction 'B::f(char)'
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
 
class B {
public:
   virtual void f(char)
   {
      printf("In B::f()\n");
   }
};
 
class D : B {
public:
   virtual void f(int)
   {
      printf("In D::f()\n");
      f('c');
   }
};
J'ai donc ajouté le using qui va bien de la façon suivante:
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
 
class B {
public:
   virtual void f(char)
   {
      printf("In B::f()\n");
   }
   virtual void f(int) = 0;
};
 
class D : B {
public:
   using B::f;
   virtual void f(int)
  {
      printf("In D::f()\n");
   }
};
Mais j'ai toujours le warning donc je voudrait savoir si l'instruction est supporté ou si j'ai fait une erreur ?