Overload + for 'ob + int' as well as 'ob + ob'.
#include <iostream> using namespace std; class MyClass { int x, y; public: MyClass() { x=0; y=0; } MyClass(int i, int j) { x=i; y=j; } void getXY(int &i, int &j) { i=x; j=y; } MyClass operator+(MyClass object2); // ob + ob MyClass operator+(int i); // ob + int }; // Overload + relative to MyClass class. MyClass MyClass::operator+(MyClass object2) { MyClass temp; temp.x = x + object2.x; temp.y = y + object2.y; return temp; } // Overload + for ob + int MyClass MyClass::operator+(int i) { MyClass temp; temp.x = x + i; temp.y = y + i; return temp; } int main() { MyClass object1(10, 10), object2(5, 3), object3; int x, y; object3 = object1 + object2; // add two objects - this calls operator+(MyClass) object3.getXY(x, y); cout << "(object1+object2) X: " << x << ", Y: " << y << endl; object3 = object1 + 100; // add object + int - this call operator+(int) object3.getXY(x, y); cout << "(object1+100) X: " << x << ", Y: " << y << endl; return 0; }