fonction virtuelle cachée
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:
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:
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 ?