overloading ( ) for the loc class : overload bracket operator « Operator Overloading « C++ Tutorial






#include <iostream>
using namespace std;
   
class loc {
  int longitude, latitude;
public:
  loc() {}
  loc(int lg, int lt) {
    longitude = lg;
    latitude = lt;
  }
   
  void show() {
    cout << longitude << " ";
    cout << latitude << "\n";
  }
   
  loc operator+(loc op2);
  loc operator()(int i, int j);
};
   
// Overload ( ) for loc.
loc loc::operator()(int i, int j)
{
  longitude = i;
  latitude = j;
   
  return *this;
}
   
// Overload + for loc.
loc loc::operator+(loc op2)
{
  loc temp;
   
  temp.longitude = op2.longitude + longitude;
  temp.latitude = op2.latitude + latitude;
  return temp;
}
   
int main()
{
  loc 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.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