Rumah > Artikel > pembangunan bahagian belakang > Apakah Perbezaan Antara `->*` dan `.*` Pengendali Penunjuk-ke-Ahli C?
*` dan `.*` Operator Penunjuk kepada Ahli? " />
Walaupun telah meneroka sumber sedia ada, anda mungkin masih bingung dengan enigmatic -> dan . operator dalam C sifat sebenar mereka dan menjelaskan apabila penggunaannya menjadi perlu.
Memahami Tujuan Pengendali Penunjuk kepada Ahli
Kedua-duanya -> dan . ialah pengendali penunjuk kepada ahli yang memudahkan akses tidak langsung kepada fungsi ahli ini pada asasnya bermakna ia membolehkan anda untuk memanggil fungsi ahli melalui penuding dan bukannya terus daripada objek.
Sintaks dan Penggunaan
Bila Gunakan -> vs. .
Contoh
Pertimbangkan kelas X dengan fungsi ahli berikut: f() dan g(). Katakan anda mempunyai penuding yang menunjuk kepada fungsi f():
struct X { void f() {} void g() {} }; typedef void (X::*pointer)(); pointer somePointer = &X::f;
Untuk memanggil somePointer menggunakan objek x, anda akan menggunakan:
X x; (x.*somePointer)(); // Calls x.f()
Jika x bukan objek tetapi penunjuk kepada objek, anda boleh menggunakan fungsi ahli menggunakan ->* seperti berikut:
X* px = new X; (px->*somePointer)(); // Calls px->f()
Contoh ini menggambarkan bahawa menggunakan ->> atau . adalah penting apabila mengakses fungsi ahli secara tidak langsung melalui penunjuk, terutamanya apabila berurusan dengan objek yang ditunjuk.
Atas ialah kandungan terperinci Apakah Perbezaan Antara `->*` dan `.*` Pengendali Penunjuk-ke-Ahli C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!