
    #include<iostream>
    using namespace std;
    class shape
    {
    public:
        shape()
        {
            cout << "shape created" << endl;
        }
        virtual void  draw()=0;


    };
    class circle : public virtual shape
    {
    public:
        circle()
        {
            cout << "circle created" << endl;
        }
        virtual void  draw()
        {
            cout << "this is a circle" << endl;
        }
    };
    class square : public virtual shape
    {
    public:
        square()
        {
            cout << "square created" << endl;
        }
        virtual void  draw()
        {
            cout << "this is a square" << endl;
        }
    };
    class shapes : public  circle, public  square
    {
    public:
        shapes()
        {
            cout << "shapes created" << endl;
        }
        
        virtual void draw()
        {
        	circle::draw();
        	square::draw();
        }
    };
    int main()
    {
        shapes e;
        cout << "-------------" << endl;
        e.draw();
        return 0;
    }