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;
}
Related examples in the same category