Wywołanie funkcji (C++)

Operator wywołania funkcji, wywoływane przy użyciu nawiasów, jest operator binarny.

primary-expression ( expression-list )

Uwagi

W tym kontekście primary-expression jest pierwszy argument i expression-list, drugi argument jest prawdopodobnie puste listę argumentów.Operator wywołania funkcji jest używana w operacjach wymagających liczba parametrów.To działa, ponieważ expression-list znajduje się lista zamiast jeden argument.Operator wywołania funkcji musi być funkcja niestatycznego członka.

Operator wywołania funkcji, gdy jest przeciążona, nie Modyfikuj, jak funkcje są wywoływane; zamiast modyfikuje, jak operator ma być interpretowana w przypadku obiektów klasy danego typu.Na przykład następujący kod zwykle będzie mieć znaczenia:

Point pt;
pt( 3, 2 );

Biorąc pod uwagę operator odpowiednie przeciążenia wywołania funkcji, jednak tej składni może służyć do przesunięcia x koordynacji 3 jednostek i y koordynacji 2 jednostki.Poniższy kod pokazuje tych definicji:

// 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 );
}

Należy pamiętać, że operator wywołania funkcji jest stosowane do nazwy obiektu, nie nazwa funkcji.

Można również przeciążać operator wywołania funkcji przy użyciu wskaźnik do funkcji (zamiast samej funkcji).

typedef void(*ptf)();
void func()
{
}
struct S
{
   operator ptf()
   {
      return func;
   }
};

int main()
{
   S s;
   s();//operates as s.operator ptf()()
}

Zobacz też

Informacje

Przeładowanie operatora