Open In App

C++ | Operator Overloading | Question 9

Like Article
Like
Save Article
Save
Share
Report issue
Report




#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


Last Updated : 28 Jun, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads