1  #include "DerivedCircle.h"
  2  
  3  // Construct a default circle object
  4  Circle::Circle()
  5  {
  6    radius = 1;
  7  }
  8  
  9  // Construct a circle object with specified radius
 10  Circle::Circle(double radius)
 11  {
 12    setRadius(radius);
 13  }
 14  
 15  // Construct a circle object with specified radius,
 16  //  color and filled values
 17  Circle::Circle(double radius, const string& color, bool filled)
 18  {
 19    this->radius = radius;
 20    setColor(color);
 21    setFilled(filled);
 22  }
 23  
 24  // Return the radius of this circle
 25  double Circle::getRadius() const
 26  {
 27    return radius;
 28  }
 29  
 30  // Set a new radius
 31  void Circle::setRadius(double radius)
 32  {
 33    this->radius = (radius >= 0) ? radius : 0;
 34  }
 35  
 36  // Return the area of this circle
 37  double Circle::getArea() const
 38  {
 39    return radius * radius * 3.14159;
 40  }
 41  
 42  // Return the perimeter of this circle
 43  double Circle::getPerimeter() const
 44  {
 45    return 2 * radius * 3.14159;
 46  }
 47  
 48  // Return the diameter of this circle
 49  double Circle::getDiameter() const
 50  {
 51    return 2 * radius;
 52  }
 53  
 54  // Redefine the toString function
 55  string Circle::toString() const
 56  {
 57    return "Circle object";
 58  }