#ifndef _POINT_H_
#define _POINT_H_

class Point {
 public:
  Point(const int x, const int y);  // constructor

  int get_x() const { return x_; }  // inline member function
  int get_y() const { return y_; }  // inline member function

  void CopyFrom(const Point &copy_from_me);    // update self
  double Distance(const Point &p) const;
  void SetLocation(const int x, const int y);

 private:
  int x_;  // data member
  int y_;  // data member
  // disable copy constructor and assignment operator
  Point(const Point &copyme);
  Point &operator=(const Point &rhs);
};  // class Point

#endif  // _POINT_H_