Overload + for 'ob + int' as well as 'ob + ob'. : Plus « Overload « C++






Overload + for 'ob + int' as well as 'ob + ob'.

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

1.Overload the + relative to MyClass.Overload the + relative to MyClass.
2.String class with custom +/- operator
3.additional meanings for the + and = operations
4.overload the "+" operator so that several angles, in the format degrees minutes seconds, can be added directly.
5.Friendly operator+
6.overloaded '+' operator adds two Distances
7.overloaded '+' operator concatenates strings
8.+ is overloaded for three_d + three_d and for three_d + int.
9.Define operator +(plus) and cast to double operator
10.Overloading the + (or any other binary operator) using a friend allows a built-in type to occur on the left or right side of the operator.
11.friend overloaded + operator