Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencipta Panggilan Balik Generik C untuk Berbilang Kelas?

Bagaimana untuk Mencipta Panggilan Balik Generik C untuk Berbilang Kelas?

Mary-Kate Olsen
Lepaskan: 2024-12-10 06:31:13
asal
921 orang telah melayarinya

How to Create Generic C   Callbacks for Multiple Classes?

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:

  1. Tentukan pengendali acara yang mengambil std:: berfungsi sebagai hujah:
void addHandler(std::function<void(int)> callback);
Salin selepas log masuk
  1. Ikat fungsi panggil balik ke contoh menggunakan std::bind:
std::bind(&amp;MyClass::Callback, this, _1)
Salin selepas log masuk

Menggunakan Fungsi C 11 Lambda:

Dengan fungsi lambda, anda boleh memudahkan lagi kod:

handler->addHandler([](int x) { std::cout << "x is " << x << '\n'; });
Salin selepas log masuk

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan