Panggilan Fungsi (C++)

Operator panggilan fungsi, yang dipanggil menggunakan tanda kurung, adalah operator biner.

Sintaks

primary-expression ( expression-list )

Keterangan

Dalam konteks ini, primary-expression adalah operan pertama, dan expression-list, daftar argumen yang mungkin kosong, adalah operand kedua. Operator panggilan fungsi digunakan untuk operasi yang memerlukan sejumlah parameter. Ini berfungsi karena expression-list merupakan daftar alih-alih satu operand. Operator panggilan fungsi harus menjadi fungsi anggota nonstatis.

Operator panggilan fungsi, ketika kelebihan beban, tidak memodifikasi bagaimana fungsi dipanggil; sebaliknya, ini memodifikasi bagaimana operator akan ditafsirkan ketika diterapkan ke objek dari jenis kelas tertentu. Misalnya, kode berikut biasanya tidak akan berarti:

Point pt;
pt( 3, 2 );

Mengingat operator panggilan fungsi kelebihan beban yang sesuai, namun, sintaks ini dapat digunakan untuk mengimbangi x unit koordinat 3 dan y unit koordinat 2. Kode berikut menunjukkan definisi seperti itu:

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

Perhatikan bahwa operator panggilan fungsi diterapkan ke nama objek, bukan nama fungsi.

Anda juga dapat membebani operator panggilan fungsi menggunakan penunjuk ke fungsi (bukan fungsi itu sendiri).

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

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

Baca juga

Kelebihan Beban Operator