Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Fungsi Ahli Kelas C Statik Boleh Digunakan sebagai Panggilan Balik C?
Menggunakan Fungsi Ahli Kelas C Statik sebagai Fungsi Panggilan Balik C
Dalam C , adalah mungkin untuk mendaftarkan fungsi ahli kelas sebagai C fungsi panggil balik, tetapi hanya jika fungsi ahli diisytiharkan sebagai statik.
Penjelasan:
Fungsi ahli bukan statik mempunyai parameter pertama tersirat jenis kelas A* yang sepadan dengan penuding ini. Walau bagaimanapun, fungsi panggil balik C biasanya tidak mempunyai parameter pertama ini. Untuk mendaftarkan fungsi ahli kelas sebagai panggil balik, kita mesti menghapuskan penunjuk ini yang tersirat.
Penyelesaian:
Isytihar fungsi ahli sebagai statik. Ini bermakna fungsi ahli tidak akan mempunyai akses kepada penuding ini.
class A { public: A(); ~A(); static int e(int *k, int *j); }; A::A() { register_with_library(e) } int A::e(int *k, int *e) { return 0; }
Pendekatan Alternatif:
Dalam kes yang tidak mungkin atau wajar digunakan fungsi ahli statik, pendekatan alternatif termasuk:
Atas ialah kandungan terperinci Bagaimanakah Fungsi Ahli Kelas C Statik Boleh Digunakan sebagai Panggilan Balik C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!