Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memanggil Penunjuk ke Fungsi Ahli dalam C dengan betul?
Penunjuk kepada fungsi ahli menyediakan cara yang mudah untuk menyimpan dan melaksanakan fungsi ahli tertentu sambil menawarkan fleksibiliti dalam pengikatan dinamik. Walau bagaimanapun, memanggil penuding fungsi ini mempunyai sintaksnya yang unik.
Dengan fungsi ahli bukan statik, memanggil penuding fungsi memerlukan kedua-dua parameter bernama dan penuding ini, yang mewakili objek yang fungsi akan dipanggil. Kod yang diperbetulkan berikut menunjukkan sintaks yang betul:
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; (box->*h)(xPos, yPos, width, height); }
Di sini, kotak ialah penunjuk kepada objek Kotak yang akan berfungsi sebagai penuding ini. Dengan menggunakan box->*h, kami pada asasnya memanggil fungsi ahli h pada contoh Kotak tertentu yang ditunjuk oleh kotak.
Mengenai penambahan fungsi ahli pada senarai, kod yang diperbetulkan ialah:
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); }
Atas ialah kandungan terperinci Bagaimana untuk Memanggil Penunjuk ke Fungsi Ahli dalam C dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!