Share via


Compiler Error C2259

'class' : cannot instantiate abstract class due to following members:

An object of the specified abstract class or structure was declared. This error is followed by one or more C4259 warnings specifying the abstract members.

A class (or structure) with one or more pure virtual functions cannot be instantiated. Each pure virtual function must be overridden in a derived class before objects of the derived class can be instantiated.

The following is an example of this error:

class V
{
public:
   void virtual func() = 0;
};
class A : public V {};
class B : public V
{
public:
   void func();
};
V v;  // error, V is an abstract class
A a;  // error, A inherits func() as pure virtual
B b;  // OK, B defines func()