class Shape { public: virtual int area() const = 0; virtual ~Shape(); }; class Square : public Shape { int side; public: Square(int); virtual int area() const; int get_side() const; }; class Rectangle : public Shape { int width, height; public: Rectangle(int, int); virtual int area() const; int get_width() const; int get_height() const; };