Ist ein Objekt namens myObj
mit den Funktionen doThis
und doThat
die beste Methode, um das Objekt (und die Anweisung an eine Funktion) an eine externe Funktion zu übergeben?Wie übergebe ich die Methode eines Objekts an eine externe Funktion?
Als Beispiel dafür, wie ich zur Zeit das tue ich eine externe Funktion void whatToDo(myClass myObj, string myFunction)
, wo ich einfach in entweder doThis
oder doThat
als myFunction
passieren und es überprüfen:
void whatToDo(myClass myObj, string myFunction) {
if(myFunction == "doThis") myObj.doThis();
if(myFunction == "doThat") myObj.doThat();
}
Da jedoch die Klasse wächst, diese wird zu einer schlechteren und schlechteren Option. Gibt es eine Möglichkeit, die eigentliche Funktion an whatToDo
zu übergeben, damit ich sie direkt aufrufen kann?
Verwenden Pointer-To-Mitglied (Funktion):
Sie solche Zeiger wie bieten könnte. – PcAF
Werden Sie mit dem Objekt noch etwas anderes tun, als diese Methode aufzurufen? Werden Sie dieselbe Elementfunktion für andere Objekte verwenden? Wenn für beide kein Wert vorhanden ist, können Sie einfach ein Argument (einen Schablonenparameter) verwenden und ein Funktionsobjekt übergeben (entweder mit einem Lambda oder mit "std :: bind"). –