Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Memanggil Penunjuk kepada Fungsi Ahli dalam C?

Bagaimana Saya Memanggil Penunjuk kepada Fungsi Ahli dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-12-05 15:45:10253semak imbas

How Do I Call a Pointer to a Member Function in C  ?

C Memanggil Penuding kepada Fungsi Ahli

Memanggil penuding kepada fungsi ahli dalam C memerlukan sintaks tertentu. Berikut ialah anatomi sintaks:

(*pointer_to_member_function)(object_pointer, arguments);

Contoh 1: Memanggil Fungsi Ahli dengan Penunjuk

Pertimbangkan coretan kod:

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

for (std::list<HitTest>::const_iterator i = hitTestList.begin(); i != hitTestList.end(); ++i)
{
    HitTest h = *i;
    (*h)(xPos, yPos, width, height);
}

Di sini, hitTestList ialah senarai penunjuk kepada fungsi ahli bernama HitTest. Untuk memanggil setiap fungsi ahli menggunakan penunjuknya, anda perlu menentukan penunjuk ini, yang merujuk kepada objek yang dipanggil fungsi. Dalam kes ini, anda mempunyai penunjuk ke kotak objek Kotak, yang boleh anda gunakan sebagai penunjuk ini:

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

Contoh 2: Menambah Fungsi Ahli pada Senarai

Pertimbangkan coretan kod:

std::list<HitTest> list;

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

Di sini, anda menambah fungsi ahli Kotak kelas ke senarai senarai. Ambil perhatian bahawa anda mengambil alamat fungsi ahli menggunakan &box->HitTest.

Atas ialah kandungan terperinci Bagaimana Saya Memanggil Penunjuk kepada Fungsi Ahli dalam 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