Memberfunktion als Parameter für Memberfunktion anderer Klasse
-
Hallo, ich habe ein Problem dass man durchaus im Internet findet, mit den Lösungen konnte ich aber leider allesamt nix anfangen.
Es geht darum, der Memberfunktion einer Klasse A aus einer beliebigen anderen Klasse B eine der dortigen Funtionen als Parameter zu geben, damit in A dann mit der Funktion aus B arbeitet, wobei die übergebenen Funtionen immer von der Art float funktion(float) sein sollen.
float A::Bla( float (*pFunction)(float) ) { return pFuntion(123); }In anderen Klassen soll jetzt sowas möglich sein:
float B::Memberfunktion1(float parameter) { //... } void B::Memberfuntion2() { xyz = A::Bla(Memberfunktion1) }Außerdem soll jede beliebige andere Klasse C, die nix mit B zu tun haben muss, das gleiche wie B mit A machen können:
float C::Memberfunktion223(float parameter) { //... } void C::Memberfuntion299() { xyz = A::Bla(Memberfunktion223) }Alles funktioniert problemlos, wenn ich keine Memberfunktion sondern eine normale Funktion übergebe. Hier bekomme ich aber nur Fehlermeldungen, was mache ich falsch?
Vielen Dank für Hilfe.
-
psycho7765 schrieb:
Was mache ich hierbei falsch?
Gar nichts, Member-Funktionen können nicht als Funktionszeiger übergeben werden, wenn die Klasse, die die Member-Funktion beinhaltet, nicht bekannt ist. Eine Möglichkeit wäre noch die Member-Funktion als
staticzu deklarieren, aber dann könntest du nicht auf die Klassen-Member zugreifen.
-
Hier wird das ganze sehr ausführlich behandelt:
http://www.newty.de/fpt/index.html
-
Ok. Schade dass es nicht so einfach geht.
Aber danke für die Antworten.