Maison >développement back-end >C++ >Comment créer des rappels C génériques pour plusieurs classes ?
Rappel C utilisant un membre de classe pour plusieurs classes
Problème :
En C, comment pouvez-vous créer une fonction de rappel générique qui fonctionne avec plusieurs classes, chacune avec son propre membre de rappel function?
Solution :
À l'origine, une méthode de rappel statique et un pointeur vers l'instance ont été utilisés, mais cette approche peut être améliorée. Voici deux solutions alternatives :
Utilisation de C 11 std::function et std::bind:
void addHandler(std::function<void(int)> callback);
std::bind(&MyClass::Callback, this, _1)
Utilisation des fonctions Lambda C 11 :
Avec les fonctions lambda, vous pouvez simplifier davantage le code :
handler->addHandler([](int x) { std::cout << "x is " << x << '\n'; });
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!