|     | friends/point-with-friends-conversion/prog.cc - The program that use the operator. | Lecture 4 - slide 37 : 40 Program 3 | 
// Illustrates implicit type conversion on the targets of move and Move.
#include <iostream>
#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)
}