Ich habe den folgenden Code geschrieben, um mein Problem zu erklären. Wenn ich die Zeile 11 kommentiere (mit dem Schlüsselwort "using"), kompiliert der Compiler die Datei nicht und zeigt diesen Fehler an : invalid conversion from 'char' to 'const char*'
. Es scheint die Methode void action(char)
der Parent
Klasse in der Son
Klasse nicht zu sehen .
Warum verhält sich der Compiler so? Oder habe ich etwas falsch gemacht?
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;
}