C++ Tutorial C++ Advanced C++ References

C++ - Function Call Operator Overloading

Function Call operator ( ), like the subscript operator, is considered a binary operator. function call operator can be overloaded for class objects and the declaration is identical to any binary operator. Overloading of (), does not modify how functions are called; rather, it modifies how the operator is to be interpreted when applied to class objects.

Example: overloading function call operator

In the example below, function call () operator is overloaded to assign the private data members of the vector class object.

#include <iostream>
using namespace std;
class vector {
    int x;
    int y;

    //function to display vector
    void displayVector() {
      cout<<"("<<x<<", "<<y<<")\n"; 

    //function for overloading ()
    vector operator() (int a, int b) {
      x = a;
      y = b;
      return *this;

int main () {
  vector v1, v2;
  //objects with function call
  v1(10, 15);
  v2(5, 25);

  return 0;

The output of the above code will be:

(10, 15)
(5, 25)

❮ C++ - Operator Overloading