### Examples of Errors using Abstract Classes

    /************************************************************************
    *

The following example shows an attempt to create an object of an abstract class type.

                                                                            *
    ************************************************************************/

    class AB             // abstract class
    {
    public:
          virtual void f()= 0; // pure virtual member function
    };
    class D: public AB
    {
    public:
          void f();
    };
    // ...
    void main ()
    {
          D d;
          d.f() ;     // calls D::f()
          AB ab;      // error, cannot create an object of an
                      // abstract class type
    }

    /************************************************************************
    *

The following example shows an attempt to create an object of a class derived from an abstract class, but that does not redefine the pure virtual function of that abstract class.

                                                                            *
    ************************************************************************/

For example:

    class AB // abstract class
    {
    public:
          virtual void f()= 0; // pure virtual member function
    };
    class D2: public AB
    {
          int a,b,c;
    public:
          void g();
    };
    // ...
    void main ()
    {
          D2 d;
          // error, cannot declare an object of abstract class D2
    }

To avoid the error in the above example, provide a declaration of D2 ::f().