vendredi 1 juin 2018

Cannot Instantiate abstract class but class is not abstract / derived method's param

Why I can't create new instance of class which is derived class of my abstract base class? My derived class has overriden base method but with different parametr which is derived class of base class param.

class BaseArg {

} ;

class DerivedArg :public BaseArg{

} ;

class BaseHandler{
public:
virtual void handle(BaseArg* arg) = 0;
} ;

DerivedHandler {
void handle(DerivedArg* arg) {}
} ;


auto x = new DerivedHandler() ;

Compiler returns "Cannot Instantiate abstract class"

Why? In my opinion it should works.

Aucun commentaire:

Enregistrer un commentaire