#ifndef SHAPE_H_
#define SHAPE_H_

#include <math.h>

struct Point {
  int _x;
  int _y; 
  
  Point(int x = 0, int y = 0): _x(x), _y(y) {}
};

inline double distance(const Point &a, const Point &b) {
  double xdiff = a._x - b._x;
  double ydiff = a._y - b._y;
  return sqrt(xdiff * xdiff + ydiff * ydiff);
}

class Shape {
  public:
    virtual ~Shape() {}
    virtual double area() const = 0;
};

#endif /*SHAPE_H_*/
