Chiamata di funzione (C++)
L'operatore di chiamata di funzione, richiamato utilizzando le parentesi, è un operatore binario.
primary-expression ( expression-list )
Note
in questo contesto, espressione primaria è il primo operando e elenco di espressioni, un elenco possibilmente vuota di argomenti, è il secondo operando.L'operatore di chiamata di funzione viene utilizzato per operazioni che richiedono una serie di parametri.Ciò è possibile in quanto elenco di espressioni è un elenco anziché solo operando.L'operatore di chiamata di funzione deve essere una funzione membro non static.
L'operatore di chiamata di funzione, una volta eseguito l'overload del metodo, non modifica le modalità di chiamata delle funzioni; piuttosto, modificare il modo in cui l'operatore deve essere interpretato una volta applicato a oggetti di un tipo specifico della classe.Ad esempio, il seguente codice sarebbe generalmente inutile:
Point pt;
pt( 3, 2 );
Dato un operatore di overload appropriato di chiamata di funzione, tuttavia, questa sintassi può essere utilizzata per compensare x unità delle coordinate 3 e y unità delle coordinate 2.Il codice riportato di seguito viene illustrata tale definizione:
// function_call.cpp
class Point
{
public:
Point() { _x = _y = 0; }
Point &operator()( int dx, int dy )
{ _x += dx; _y += dy; return *this; }
private:
int _x, _y;
};
int main()
{
Point pt;
pt( 3, 2 );
}
Si noti che l'operatore di chiamata di funzione applica al nome di un oggetto, non il nome di una funzione.