#ifndef CIRCLE_HH
#define CIRCLE_HH

#include "Shape.hh"

#define M_PI           3.14159265358979323846

class Circle: public Shape {
public:

  // Constructor, destructor
	Circle( double radius ) : _radius(radius) {} ;
	virtual ~Circle() {} ;

  // Implementation of abstract interface
	virtual double surface() const { return M_PI * _radius * _radius ; }
	virtual double circumference() const { return 2 * M_PI * _radius ; }
	virtual const char* shapeName() const { return "Circle"; }

private:
	double _radius ;
} ;
#endif
