C++ | Operator Overloading | Question 9

filter_none

edit
close

play_arrow

link
brightness_4
code

#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;
}

chevron_right


(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

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up