Zugriffsbereich von Funktionszeigern
-
Hallo!
Ich möchte meiner Datenstruktur einen Funktionszeiger übergeben, ungefähr so:
forEach( void (*op)() ) { (*od)(); next->forEach(op); }damit meine Funktion für alle Elemente dieser Datenstruktur ausgeführt wird.
Jetzt meine Frage:
Wenn ich meine Funktion op schreibe, auf welche Funktionen kann op zugreifen?
Insbesondere kann op Memberfunktionen der Klasse in der forEach ist verwenden?Grüße,
Raphael
-
Jetzt meine Frage:
Wenn ich meine Funktion op schreibe, auf welche Funktionen kann op zugreifen?Gegenfrage: Auf welche Funktionen kann die folgende Funktion zugreifen?
void f() { // ... }Richtig. Auf alle Funktionen, die bis zu dieser Stelle deklariert sind... (Bedenke: So wie sich die Funktion normal verhält, so verhält sich auch der Funktionszeiger, wenn du ihn dereferenzierst)
Insbesondere kann op Memberfunktionen der Klasse in der forEach ist verwenden?
Statische Memberfunktionen schon. Für alle anderen musst du in der Funktion auch ein Objekt definieren, über welches du dann die Funktionen aufrufen kannst. (Ich glaube aber nicht, dass es das ist, was du meinst... => bitte genauer erläutern...)
Frage dich am besten wieder, auf was kann deine normale Funktion zugreifen? ...Gruß Caipi
-
Logisch! Dankeschön, Caipi
