Rumah > pembangunan bahagian belakang > C++ > Penunjuk Fungsi Ahli C: Bila Untuk Menggunakan `->*` lwn. `.`?

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

DDD
Lepaskan: 2024-11-17 14:00:04
asal
291 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!

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