Panggil Balik C Menggunakan Ahli Kelas untuk Berbilang Kelas
Masalah:
Dalam C , bagaimana bolehkah anda mencipta fungsi panggil balik generik yang berfungsi dengan berbilang kelas, setiap satu dengan ahli panggil balik sendiri fungsi?
Penyelesaian:
Pada asalnya, kaedah panggil balik statik dan penuding kepada contoh telah digunakan, tetapi pendekatan ini boleh dipertingkatkan. Berikut ialah dua penyelesaian alternatif:
Menggunakan C 11 std::function dan std::bind:
void addHandler(std::function<void(int)> callback);
std::bind(&MyClass::Callback, this, _1)
Menggunakan Fungsi C 11 Lambda:
Dengan fungsi lambda, anda boleh memudahkan lagi kod:
handler->addHandler([](int x) { std::cout << "x is " << x << '\n'; });
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Panggilan Balik Generik C untuk Berbilang Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!