//File: Shape0.cpp #include #include #include //contains PI #include "shape0.h" using namespace std; //Shape Implementation Shape::Shape():m_name("Basic Shape") {}; Shape::Shape(string name) { m_name = name; } string Shape::name() const { return m_name; } double Shape::area() const { return 0.0; } //Rectangle Implementation Rectangle::Rectangle (double Xul, double Yul, double Xlr, double Ylr, string name) : Shape (name) { m_xul = Xul; m_yul = Yul; m_xlr = Xlr; m_ylr = Ylr; } double Rectangle::width() const { return m_xlr - m_xul; } double Rectangle::height() const { return m_yul - m_ylr; } double Rectangle::perimeter() const { return 2.0 * (width() + height()); } double Rectangle::area() const { return width() * height(); } //Circle Implementation Circle::Circle(double xcoord, double ycoord, double radius, string name) : Shape (name) { m_x = xcoord; m_y = ycoord; m_rad = radius; } double Circle::radius() const { return m_rad; } void Circle::center(double &x, double &y) const { x = m_x; y = m_y; } double Circle::circumference() const { return(2.0 * PI * m_rad); } double Circle::area() const { return (PI * m_rad * m_rad); }