*` dan `.*` Operator Penunjuk kepada Ahli Berfungsi? " />
Memahami Operator Penunjuk kepada Ahli -> dan . dalam C
Walaupun dokumentasi sedia ada, memahami maksud penunjuk -kepada-ahli pengendali -> dan . dalam C boleh sukar difahami. Artikel ini bertujuan untuk menjelaskan fungsinya dan aplikasinya dalam pelbagai senario.
Apakah itu -> dan .?
Penunjuk- operator kepada ahli digunakan untuk mengakses fungsi ahli secara tidak langsung melalui penunjuk atau rujukan kepada objek. -> menyahrujuk penuding fungsi ahli untuk memanggil fungsi ahli objek yang dirujuk . menyahrujuk penuding ahli untuk memanggil fungsi ahli objek runcing.
Bila hendaknya. Gunakan -> dan .?
X* px = new X; pointer somePointer = &X::f; (px->*somePointer)(); // Calls px->f()
X& rx = x; pointer somePointer = &X::f; (rx.*somePointer)(); // Calls rx.f()
Contoh
Pertimbangkan kod berikut:
struct X { void f() {} void g() {} }; int main() { X x; void (X::*pointer)() = &X::f; // Call x.f() using .* (x.*pointer)(); X* px = new X; // Call px->f() using ->* (px->*pointer)(); return 0; }
Dalam contoh ini, penunjuk menafikan penunjuk fungsi ahli &X: :f dan berikannya kepada penunjuk. Kemudian, . digunakan pada x untuk memanggil x.f(), dan -> digunakan pada px untuk memanggil px->f().
Dengan memahami perbezaan antara -> ; dan . dan apabila setiap satu sesuai, pembangun boleh mengendalikan penunjuk fungsi ahli dan panggilan fungsi tidak langsung dalam C dengan berkesan .
Atas ialah kandungan terperinci Bagaimana Pengendali Penunjuk-ke-Ahli C \'s `->*` dan `.*` Berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!