C++ Operatore di chiamata di funzione


Esempio

È possibile sovraccaricare l'operatore di chiamata di funzione () :

Il sovraccarico deve essere fatto all'interno di una class / struct :

//R -> Return type
//Types -> any different type
R operator()(Type name, Type2 name2, ...)
{
    //Do something
    //return something
}

//Use it like this (R is return type, a and b are variables)
R foo = object(a, b, ...);

Per esempio:

struct Sum
{
    int operator()(int a, int b)
    {
        return a + b;
    }
};

//Create instance of struct
Sum sum;
int result = sum(1, 1); //result == 2