C1125: Cannot instantiate abstract class as a type of explicit conversion

[ERROR]

Description

An abstract class may not be used as a type of an explicit conversion.

Example
  class A{

  
  public:

  
    virtual void f(void) = 0; //pure virtual function ==> 
  A is an abstract class

  
  };

  
  class B : public A{

  
  public:

  
    void f(void){}

  
  };

  
  void main(void){

  
    A *pa;

  
    B b;

  
    

  
    pa = &(A)b;

  
  }

  
Tips

Use a pointer/reference to the object

  void main(void){

  
    A *pa;

  
    B b;

  
    

  
    pa = (A *)b;

  
  }