Skip to content
Related Articles

Related Articles

C++ | Operator Overloading | Question 9
  • Last Updated : 20 Sep, 2013




#include<iostream>
using namespace std;
  
class Point {
private:
  int x, y;
public:
  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);
  pt.show();
  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

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.
My Personal Notes arrow_drop_up
Recommended Articles
Page :