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(&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!