C++ | Operator Overloading | Question 9

using namespace std;
class Point {
  int x, y;
  Point() : x(0), y(0) { }
  Point& operator()(int dx, int dy);
  void show() {cout << "x = " << x << ", y = " << y; }
Point& Point::operator()(int dx, int dy)
    x = dx;
    y = dy;
    return *this;
int main()
  Point pt;
  pt(3, 2);
  return 0;

(A) x = 3, y = 2
(B) Compiler Error
(C) x = 2, y = 3

Answer: (A)

Explanation: This a simple example of function call operator overloading.

The function call operator, when overloaded, does not modify how functions are called. Rather, it modifies how the operator is to be interpreted when applied to objects of a given type.
If you overload a function call operator for a class its declaration will have the following form:

    return_type operator()(parameter_list) 

Quiz of this Question

My Personal Notes arrow_drop_up

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.