Memanggil Penuding C kepada Fungsi Ahli
Memahami sintaks yang betul untuk memanggil penunjuk kepada fungsi ahli dalam C adalah penting. Soalan ini meneroka kaedah khusus untuk memanggil penunjuk sedemikian, serta proses menambah fungsi ahli pada senarai.
Memanggil Penunjuk kepada Fungsi Ahli
Soalan itu memaparkan coretan kod yang cuba memanggil penunjuk kepada fungsi ahli menggunakan sintaks:
(*h)(xPos, yPos, width, height);
Walau bagaimanapun, sintaks yang betul memerlukan kedua-dua parameter yang dinamakan dan penuding ini. Oleh itu, baris yang diperbetulkan menjadi:
(box->*h)(xPos, yPos, width, height);
Ini memastikan penunjuk ini yang betul digunakan semasa memanggil fungsi ahli.
Menambah Fungsi Ahli ke Senarai
Soalan itu juga menunjukkan cara menambah fungsi ahli pada senarai. Di sini, penunjuk kepada fungsi ahli sedang disimpan dalam std::list. Kod di bawah menggambarkan proses:
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); }
Kod ini berulang melalui senarai penunjuk Kotak dan menolak alamat setiap fungsi ahli HitTest ke std::list. Setiap fungsi ahli diwakili oleh penuding kepada fungsi ahli yang merujuk penunjuk ini bagi objek Kotak tertentu.
Atas ialah kandungan terperinci Bagaimana untuk Memanggil dan Menambah Penunjuk C pada Fungsi Ahli dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!