// Illustrates implicit type conversion on the targets of move and Move. #include #include "point.h" using namespace std; // Friend of Point. Returns moved copy of p. Point Move(const Point &p, double dx, double dy){ return Point(p.x + dx, p.y + dy); } int main(){ Point p(1,2), q(3,4), r; Point(3).move(1,2); // Moving temporary Point - not useful. //3.move(1,2); // Point(3).move(1.2) is not attempted. // No implicit conversion on the value to the left of the dot operator. r = Move(3, 1,2); // Implicit conversion of 3.0 to Point(3.0). // Moving this point to (4,5). cout << "Point p: " << p << endl; // (1,2) cout << "Point q: " << q << endl; // (3,4) cout << "Point r: " << r << endl; // (4,5) }