Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memanggil Penunjuk ke Fungsi Ahli dalam C dengan betul?

Bagaimana untuk Memanggil Penunjuk ke Fungsi Ahli dalam C dengan betul?

Susan Sarandon
Lepaskan: 2024-12-31 13:20:11
asal
665 orang telah melayarinya

How to Correctly Call Pointers to Member Functions in C  ?

Memanggil Penunjuk kepada Fungsi Ahli dalam C

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);
}
Salin selepas log masuk

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);
}
Salin selepas log masuk

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!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan