A simple two-dimensional point class

Let's start with a simple point class in 2D. It has x and y coordinates and a member function, which calculates the distance to another point:

class Point{public:  Point(float x, float y) : x_{x}, y_{y} {}  auto distance(const Point& p) const {    auto dist_sqrd = std::pow(x_-p.x_, 2) + std::pow(y_-p.y_, 2)    return std::sqrt(dist_sqrd);  }private:  float x_{};  float y_{};};

A simple usage example would be as follows:

auto target = Point{3, 5}; 
auto a = Point{6, 9}; 
auto b = Point{7, 4}; 
auto nearest_target =   target.distance(a) < target.distance(b) ?   a : b; 
auto a_to_b_distance = a.distance(b);
Distances ...

Get C++ High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.