Function Call Operator() Overloading in C++

Posted in /  

Function Call Operator() Overloading in C++

Vinay Khatri
Last updated on May 30, 2024

    Using the concept of Operator Overloading we can overload the function call operator () , and when we say we can overload the function call operator () we do not mean we can redefine a new way to call a function, rather in function call operator overloading we redefine the parameters accepted by the function and after function call operator overloading we can pass an arbitrary number of parameters in a class member function. Example

    #include <iostream>
    using namespace std;
    class Displacement {
          int meters;  
          // required constructors
             meters = 0;
          Displacement(int m)
          // overload function call
          Displacement operator()(int a, int b, int c) 
             Displacement D;
             D.meters = a+b+c;
             return D;
          // it show the displacement
          void show_displacement() 
              cout  << meters << " Meters " << endl;
    int main() {
       Displacement D1(100), D2;
       cout << "D1 Displacement : ";
       D2 = D1(200, 200, 200); // invoke operator() overloading method
       cout << "D2 Displacement:";
       return 0;

    Output D1 Displacement: 100 Meters D2 Displacement: 600 Meters


    So, this was all about function call operator() overloading in C++. When you overload the function call operator(), it does not mean that you create another way to call a function. Instead, you create an operator function that can accept an arbitrary number of parameters. We hope the example mentioned in this tutorial helped you develop a better understanding of how function call operator() overloading works in C++. Also, if you have any queries or suggestions, feel free to share them in the comments section below. People are also reading:

    Leave a Comment on this Post