Penunjuk Fungsi Ahli C: Bila Untuk Menggunakan `->*` lwn. `.`?

DDD
Lepaskan: 2024-11-17 14:00:04
asal
186 orang telah melayarinya

C   Member Function Pointers: When to Use `->*` lwn. `.`?
*` lwn. `.`? " />

Penunjuk Fungsi Ahli dalam C : Menyahmistikan >* dan .

Ramai pengaturcara mencari pengendali penunjuk kepada ahli > dan . dalam C mengelirukan Artikel ini menjelaskan penggunaan mereka dan bila untuk mengambil mereka daripada tradisional > ..

Pemahaman >* dan .

> dan . ialah pengendali penunjuk kepada ahli yang membolehkan anda mengakses fungsi ahli melalui petunjuk Pengendali ini digunakan apabila anda perlu mengikat fungsi ahli secara dinamik objek.

  • >*: Operator ini digunakan apabila penunjuk dan objek adalah daripada jenis yang sama.
  • .*: Operator ini digunakan apabila penunjuk adalah jenis terbitan, manakala objek adalah asas taip.

Contoh:

Pertimbangkan kelas berikut:

struct X
{
   void f() {}
   void g() {}
};
Salin selepas log masuk

Untuk mencipta penunjuk kepada fungsi ahli f, kami boleh menggunakan typedef:

typedef void (X::*pointer)();
Salin selepas log masuk

Sekarang, kita boleh menetapkan f pada penunjuk somePointer:

pointer somePointer = &X::f;
Salin selepas log masuk

Untuk memanggil fungsi ahli menggunakan penunjuk, kita memerlukan objek:

X x;
(x.*somePointer)(); // Calls x.f()
Salin selepas log masuk

Jika x ialah penunjuk kepada objek, kita perlu menggunakan >* sebaliknya:

X* px = new X;
(px ->* somePointer)(); // Calls px->f()
Salin selepas log masuk

Senario Penggunaan:

Anda lazimnya perlu menggunakan > dan . dalam senario di mana anda perlu menghantar fungsi ahli sebagai argumen kepada fungsi atau menyimpannya dalam bekas. Pengendali ini menyediakan cara untuk memisahkan panggilan fungsi daripada contoh objek tertentu.

Kesimpulan:

Pengendali penunjuk kepada ahli > dan . dalam C ialah alat berkuasa yang membolehkan pengikatan fungsi dinamik. Dengan memahami penggunaannya dan bila hendak menggaji mereka berbanding tradisional > dan ., anda boleh meningkatkan fleksibiliti dan kebolehgunaan semula kod anda.

Atas ialah kandungan terperinci Penunjuk Fungsi Ahli C: Bila Untuk Menggunakan `->*` lwn. `.`?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan