#ifndef CLASSES_HPP
#define CLASSES_HPP
#include <string>
namespace shapes {
struct Point {
int x;
int y;
};
class Shape {
public:
virtual ~Shape() = default;
virtual double area() const = 0;
virtual double perimeter() const = 0;
};
class Circle : public Shape {
public:
Circle(Point center, double radius);
double area() const override;
double perimeter() const override;
private:
Point center_;
double radius_;
};
class Rectangle : public Shape {
public:
Rectangle(Point topLeft, double width, double height);
double area() const override;
double perimeter() const override;
private:
Point topLeft_;
double width_;
double height_;
};
enum class Color {
Red,
Green,
Blue
};
enum Status {
Pending,
Active,
Done
};
}
#endif