Je codage des choses en C++, et comme toujours nous avons des « pensées » si quelque chose existe similaire sur la langue ...C++ NOUVEAU objet en tant que paramètre (comme Java)
Je suis maintenant, avec un doute sur les objets passant comme paramètres.
Ce que je fais toujours, est de créer un nouvel objet, et le transmettre est par exemple comme un pointeur, comme ceci:
mObject* obj1 = new mObject();
obj1->callback(the_callback_function);
function_that_needs_obj(obj1); // (or the reference, if I didn't instantiated a pointer).
C'est OK, fonctionne bien, il n'y a pas de problème avec cela. Mais, comme je l'ai utilisé Java, je faisais comme ceci:
function_that_needs_obj(new mObject(){
public void onCallback(){
// Custom code enters here....
}
});
Y at-il « sort » d'utilisation en C++ comme ça? Parce que pour chaque rappel que j'ai besoin de créer: Un Extended class
, ou, un functionNamedVeryLongBecauseThereAreMany
doit être écrit sur le dessus du code, et ce genre de "confondre" beaucoup le code ...
Et aussi, tous Variable d'objet , ne sont pas disponibles par voie this
si j'assing une fonction de rappel ...
Les rappels en C++ sont encore plus faciles. Prenez simplement n'importe quel type appelable et passez un lambda. – chris
@chris, il n'y a pas de problème à "implémenter" les callbacks, il s'agit juste d'enchanter le code ... Si j'envoie un type callable au nouvel objet, le type callable ne pourra pas 'accéder' aux données de l'objet, seulement s'il utilise la portée globale. –
Désolé ... Je ne suis pas anglais natif ... –