Pointer auf Klassenfunktion
-
Ich möchtte einen Pointer auf eine klasseninterne Funktion übergeben, wobei das Event ein simpler byte-Pointer ist:
typedef byte* EVENT;Wenn ich eine globale Funktion habe, geht es, etwa so:
Objekt->event = (byte*) Event;baer wenn ich auf die entsprechende Datei in der Objekt Klasse verweise, bekomme ich stets den Verweis, dass es sich um einen ungültigen Cast handelt:
Objekt->event = (byte*) Objekt->Event;Wie mach ich's richtig?
-
Percy2000 schrieb:
Ich möchtte einen Pointer auf eine klasseninterne Funktion übergeben, wobei das Event ein simpler byte-Pointer ist
Ähh was nun, Methodenpointer (Funktion einer Klasse) oder Byte-Pointer. Wenn du unter Event eine Methode meinst, kann die jedenfalls kein "simpler byte-Pointer" sein. Was willst du damit erreichen?
Oder meinst du eine Methode die als Parameter einen byte-Pointer hat?
cu André
-
Ah, ich meine einen Methodenpointer.
Ich habe ein Pointer-Objekt, das Teil der Klasse ist, zur Laufzeit erstellt wird und dessen Event Funktion seinerseits durch eine bestimmte Methode der Klasse kontrolliert werden soll.
-
Dann mußt du einen Memberzeiger verwenden (mit Angabe der konkreten Klasse):
typedef Klasse::byte* EVENT;Edit: Wenn du eine Methodenzeiger verwenden willst, dann mußt du auch noch die Paramter angeben (oder aber leere Klammern):
typedef void (Klasse::*EVENT)(/*Parameter*/);Was jetzt dein 'byte*' hier sein soll, Rückgabewert oder Parameter mußt du selber entscheiden.