| point-cpp-cs-exercise/cpp/prog3.cc - The C++ client program with Point value semantics. | Lecture 2 - slide 27 : 27 Program 9 |
// Notice: New sematics due to use of call-by-value.
#include <iostream>
#include "point.h"
using namespace std;
Point pointmover(Point pa, Point pb){
pa.move(5,6);
pb.move(-5,-6);
return pb;
}
void go(){
Point p1(1, 2),
p2(3, 4),
p3 = p1, // Copy p1
p4 = p2; // Copy p2
Point p5 = pointmover(p1, p2); // Pass copies.
cout << p1 << endl << // (1,2)
p2 << endl << // (3,4)
p3 << endl << // (1,2)
p4 << endl << // (3,4)
p5 << endl; // (-2,-2), a moved copy of p2, copied back from pointmover.
}
int main(){
go();
}