C1123: Cannot instantiate abstract class as argument type

[ERROR]

Description

An abstract class may not be used as argument type

Example
  class A{

  
  public:

  
    virtual void f(void) = 0; // pure virtual function 

  
                              // ==> A is an abstract class

  
  };

  
  void main(void){

  
    void fct(A);

  
  }

  
Tips

Use a pointer/reference to the object:

  void main(void){

  
    void fct(A *);

  
  }

  

Use a derived class from abstract class

  class B : public A{

  
  public:

  
    void f(void){}

  
  };

  
  void main(void){

  
    void fct(B);

  
  }