J'ai écrit le code ci-dessous afin d'expliquer mon problème. Si je commente la ligne 11 (avec le mot clé "using"), le compilateur ne compile pas le fichier et affiche cette erreur: invalid conversion from 'char' to 'const char*'
. Il semble ne pas voir la méthode void action(char)
de la classe Parent
dans la classe Son
.
Pourquoi le compilateur se comporte de cette façon? Ou ai-je fait quelque chose de mal?
class Parent
{
public:
virtual void action( const char how ){ this->action( &how ); }
virtual void action( const char * how ) = 0;
};
class Son : public Parent
{
public:
using Parent::action; // Why should i write this line?
void action( const char * how ){ printf( "Action: %c\n", *how ); }
};
int main( int argc, char** argv )
{
Son s = Son();
s.action( 'a' );
return 0;
}