Перегруженый оператор ()

В процессе перегрузки происходит суммирование объектов.

pop.h

#include <iostream>
using namespace std;
class C{
	int x, y, z;
	
public:
	C(){ x = 0, y = 0, z = 0; }
	C(int x1, int y1,int z1){
		x = x1;
		y = y1;
		z = z1;
	}
	C operator()(int a, int b, int c);//Перегруженый оператор ()
	void Print(); 
};
C C::operator()(int a, int b, int c){
	C tmp;
	tmp.x = x + a;
	tmp.y = y + b;
	tmp.z = z + c;
	return tmp;
}
void C::Print(){
	cout << x << endl;
	cout << y << endl;
	cout << z << endl;
}


main

#include "pop.h"
void main() {
	setlocale(LC_ALL, "rus");
	C object(1, 2, 3),object2;
	object2 = object(10, 20, 30);
	object.Print();
	object2.Print();
	system("pause");
}