Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Memanggil Penunjuk kepada Fungsi Ahli dalam C?

Bagaimanakah Saya Memanggil Penunjuk kepada Fungsi Ahli dalam C?

Linda Hamilton
Lepaskan: 2024-12-16 04:53:17
asal
449 orang telah melayarinya

How Do I Call Pointers to Member Functions in C  ?

Memanggil Penuding kepada Fungsi Ahli dalam C

Dalam C , penunjuk kepada fungsi ahli menyediakan cara yang mudah untuk menggunakan kaedah secara dinamik pada objek. Walau bagaimanapun, sintaks mereka boleh mencabar.

Sintaks untuk Memanggil Penunjuk kepada Fungsi Ahli

Untuk memanggil penuding kepada fungsi ahli, sintaks berikut digunakan:

(object->*pointer_variable)(params)
Salin selepas log masuk

di mana:

  • objek ialah tika pada yang mana fungsi itu dipanggil
  • *pembolehubah_penunjuk ialah penuding kepada fungsi ahli
  • params ialah parameter yang dihantar kepada fungsi

Contoh Sintaks

Pertimbangkan kod berikut coretan:

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

Dalam contoh ini, senarai penunjuk kepada fungsi ahli HitTest diulang. Setiap penunjuk diambil daripada senarai dan digunakan dengan menyediakan penunjuk kotak seperti ini.

Menambah Fungsi Ahli pada Senarai Penunjuk

Untuk menambah fungsi ahli pada senarai daripada penunjuk, sintaks berikut boleh digunakan:

list.push_back(&box->HitTest);
Salin selepas log masuk

Kod ini menolak penuding kepada ahli HitTest fungsi objek kotak ke dalam senarai.

Atas ialah kandungan terperinci Bagaimanakah Saya Memanggil Penunjuk kepada Fungsi Ahli dalam C?. 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