/*
 * Copyright ©2026 Soham Pardeshi. All rights reserved.
 * Permission is hereby granted to students registered for University of
 * Washington CSE 333 for use solely during Summer Quarter 2026 for
 * purposes of the course. No other use, copying, distribution, or
 * modification is permitted without prior written consent. Copyrights
 * for third-party components of this work must be honored. Instructors
 * interested in reusing these course materials should contact the author.
 */

#ifndef POINT_H_
#define POINT_H_

// A simple class: the interface lives in the .h, the definitions in the .cc.
// Data members are private (the object protects them); the outside world uses
// the public methods only.
class Point {
 public:
  Point(int x, int y);                    // constructor

  int GetX() const { return x_; }         // inline const getter
  int GetY() const { return y_; }         // inline const getter

  double Distance(const Point& p) const;  // does not modify *this -> const
  void SetLocation(int x, int y);         // modifies *this -> NOT const

 private:
  int x_;  // data member
  int y_;  // data member
};

#endif  // POINT_H_