#pragma once __value enum Direction : unsigned short int { East = 0, NorthEast = 45, North = 90, NorthWest = 135, West = 180, SouthWest = 225, South = 270, SouthEast = 315 }; __value class Location { private: double x, y; public: Location(void) : x(0), y(0) {}; Location(double X, double Y) : x(X), y(Y) {}; // methods __property double get_X() { return x; }; __property double get_Y() { return y; }; void MoveTo(double X, double Y) { x = X; y = Y; }; void MoveTo(const Location &p) { x = p.x; y = p.y; }; void MoveBy(int angle, double d); void MoveBy(Direction angle, double d); // static methods static double Distance(Location &a, Location &b); };