Converting between types

You can also perform conversions. In math, you can define a vector that represents direction, so that the line drawn between two points is a vector. In our code we have already defined a point class and a cartesian_vector class. You could decide to have a constructor that creates a vector between the origin and a point, in which case you are converting a point object to a cartesian_vector object:

    class cartesian_vector     {         double x; double y;      public:         cartesian_vector(const point& p) : x(p.x), y(p.y) {}     };

There is a problem here, which we will address in a moment. The conversions can be called like this:

    point p(10, 10);     cartesian_vector v1(p);     cartesian_vector v2 { p };     cartesian_vector v3 = p;

Get Beginning C++ Programming 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.