#include <iostream>
#include <cmath>
#include <cstdlib>

#include "SimplePoint.h"

double SimplePoint::Distance(const SimplePoint &p) const {
  double distance = (x_ - p.x_) * (x_ - p.x_);
  distance += (y_ - p.y_) * (y_ - p.y_);
  return sqrt(distance);
}

void SimplePoint::SetLocation(const int x, const int y) {
  x_ = x;
  y_ = y;
}

void PrintSimplePoint(const SimplePoint& pt) {
  std::cout << "SimplePoint: (" << pt.get_x() << ", " << pt.get_y() << ")" << std::endl;
}

int main(int argc, char **argv) {
  SimplePoint x;     // invokes synthesized default constructor.
  PrintSimplePoint(x);
  SimplePoint y(x);  // invokes synthesized copy constructor.
  //PrintSimplePoint(y);
  y = x;             // invokes synthesized assignment operator.
  //PrintSimplePoint(y);
  return EXIT_SUCCESS;
}