Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memanggil Penunjuk Fungsi Ahli C?

Bagaimana untuk Memanggil Penunjuk Fungsi Ahli C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-14 02:47:10971semak imbas

How to Call C   Member Function Pointers?

C Call Pointer To Member Function

Memanggil penunjuk kepada fungsi ahli dalam C memerlukan sintaks unik kerana sifatnya yang tidak statik. Untuk menggunakan fungsi sedemikian dengan berkesan, penunjuk ini yang mewakili objek yang akan dipanggil fungsi mesti dibekalkan bersama parameter yang dinamakan.

Untuk menentukan penunjuk fungsi ahli dalam kod anda:

typedef void (Box::*HitTest) (int x, int y, int w, int h);

Ini mentakrifkan jenis penuding fungsi ahli untuk kaedah HitTest daripada kelas Kotak.

Untuk menambah fungsi ahli pada senarai:

std::list<HitTest> list;

for (std::list<Box*>::const_iterator i = boxList.begin(); i != boxList.end(); ++i)
{
    Box * box = *i;
    list.push_back(&amp;box->HitTest);
}

Untuk memanggil penuding kepada fungsi ahli:

(box->*h)(xPos, yPos, width, height);

Dalam contoh ini, kotak mewakili ini penunjuk, h ialah penunjuk kepada kaedah HitTest dan xPos, yPos, lebar dan ketinggian ialah parameter fungsi.

Atas ialah kandungan terperinci Bagaimana untuk Memanggil Penunjuk Fungsi Ahli C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn