Write a command line program that:
Has classes to allow number of shapes to be defined:
square (side1), rectangle(side1, side2), circle(radius), triangle(height, base).
Each shape class should know it's type ("Square"), how many sides it has.
Each shape needs to be able to calculate it's perimeter and area.
For the triangle you can assume it is isoceles and the perimeter can be
computed using p = b + 2\sqrt{h^2+(b^2/4)}, where b is the base and h is the height.
Within the Main method create a variety of the shapes and put them in a std::vector
Create a class ShapeSorter which should contain four methods
Print out the Shapes that match a chosen type
Print out the Shapes that match a chosen number of sides
Print out the Shapes in order of volume descending
Print out the Shapes in order of perimeter descending