class SimplePoint {

  // Note that no constructors are declared/defined, so C++
  // synthesizes a default constructor for us, as well as
  // a copy constructor.  The default constructor initializes
  // all member variables to 0 (i.e., x_, y_).  The copy
  // constructor does a shallow copy of all member variables.

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

  double Distance(const SimplePoint &p) const;
  void SetLocation(const int x, const int y);

  // Note that the "=" (assignment) operator is not overloaded,
  // C++ synthesizes a default operator implementation for us
  // that does a shallow copy of all member variables (x_ and y_).

  int x_;  // data member
  int y_;  // data member
};  // class Point

#endif  // _SIMPLEPOINT_H_