class ShapeFactory
{
public:
        virtual Rectangle *MakeRectangle( int x, int y, int w, int h ) ;
        virtual Ellipse *MakeEllipse( int x, int y, int w, int h );
};

class DottedShapeFactory : public ShapeFactory
{
public:
        Rectangle *MakeRectangle( int x, int y, int w, int h );
        Ellipse *MakeEllipse( int x, int y, int w, int h );
};