Overload ( ) for Point : overload bracket operator « Operator Overloading « C++ Tutorial






#include <iostream>
using namespace std;

class Point {
  int x, y;
public:
  Point() {}
  Point(int px, int py) {
    x = px;
    y = py;
  }

  void show() {
    cout << x << " ";
    cout << y << "\n";
  }

  Point operator+(Point op2);
  Point operator()(int i, int j);
};

// Overload ( ) for Point.
Point Point::operator()(int i, int j)
{
  x = i;
  y = j;

  return *this;
}

// Overload + for Point.
Point Point::operator+(Point op2)
{
  Point temp;

  temp.x = op2.x + x;
  temp.y = op2.y + y;

  return temp;
}

int main()
{
  Point ob1(10, 20), ob2(1, 1);

  ob1.show();
  ob1(7, 8); // can be executed by itself
  ob1.show();

  ob1 = ob2 + ob1(10, 10); // can be used in expressions
  ob1.show();

  return 0;
}
10 20
7 8
11 11








10.9.overload bracket operator
10.9.1.Overload ( ) for Point
10.9.2.overloading ( ) for the loc class
10.9.3.The overloaded operator[ ]( ) function returns the value of the array as indexed by the value of its parameter.
10.9.4.design the operator[ ]( ) function in such a way that the [ ] can be used on both the left and right sides of an assignment statement.
10.9.5.Add a range check to for overloaded [] operator
10.9.6.Overload () operator for two values