Shape.h
namespace Graphics { class Shape { public: virtual void Render(Point point) {}; }; }
Rect.h
namespa
This problem is called slicing - you lose the derived functionality when copying to a base. To avoid this use pointers to the base class, i.e.
std::vector s; s.push_back(&some_rect);