// @topic T071155 vector of shapes // @brief class inheritance and virtual functions #ifndef SHAPES_H_INCLUDED_ #define SHAPES_H_INCLUDED_ #include <iostream> #include <cstdio> #include <vector> #include <string> #include <memory> // for unique_ptr class Shape { public: virtual ~Shape() {} // virtual destructor virtual void draw() const = 0; // pure virtual function };//class Shape class Line : public Shape { public: void draw() const { std::cout << "Line " << this << "\n"; } };//class Line class Rectangle : public Shape { public: void draw() const { std::cout << "Rectangle " << this << "\n"; } };//class Rectangle class Circle : public Shape { public: void draw() const { std::cout << "Circle " << this << "\n"; } };//class Circle #endif //SHAPES_H_INCLUDED_