// @topic T090m12d04x30 inheritance and virtual functions
// @brief main driver code
#include <iostream>
#include <cstdlib>
#include <vector>
#include "shapes.h"
int main()
{
std::cout << "sizeof( Shape )" << sizeof( Shape ) << "\n";
// Rectangle rectangle;
// rectangle.compute_center();
// Circle circle{ 5, 5, 30 };
std::vector< std::unique_ptr< Shape > > shapes;
shapes.push_back( std::unique_ptr< Shape >( new Circle{ 5, 5, 30 } ) );
shapes.push_back( std::unique_ptr< Shape >( new Rectangle ) );
shapes.push_back( std::unique_ptr< Shape >( new Circle{ 5, 5, 30 } ) );
shapes.push_back( std::unique_ptr< Shape >( new Rectangle ) );
for ( std::unique_ptr<Shape> const& pshape : shapes ) {
pshape->draw();
}
system("pause");
return 0;
}