Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memanggil dan Menambah Penunjuk C pada Fungsi Ahli dengan Betul?

Bagaimana untuk Memanggil dan Menambah Penunjuk C pada Fungsi Ahli dengan Betul?

Susan Sarandon
Lepaskan: 2024-12-07 14:33:12
asal
536 orang telah melayarinya

How to Correctly Call and Add C   Pointers to Member Functions?

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

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

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

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!

sumber:php.cn
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