Pointer auf Funktion als Funktionsargument
-
Hi,
Gegeben ist folgende Klasse
class Foo { public: private: (void)(*func)(const X& Var);//Pointer auf eine Funktion mit dem // Rückgabewert void, und nimmt ein Object //vom Typ X entgegen }Die Membervariable ist aber private, wenn ich aber diese jetzt per Funktion setzten will kommten immer Fehler.
Hier war mein Ansatz.
Foo::SetFunc((void)(*func2)(const X& Var)) { this->func=func2; }Da kommen folgende Fehler
error C2059: Syntaxfehler: '(' error C2059: Syntaxfehler: '*' error C2091: Funktionsergebnis ist eine Funktion error C2091: Funktionsergebnis ist eine Funktion error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. error C2059: Syntaxfehler: ')'Ich weiß nicht mehr weiter.
Bin für jede Hilfe dankbar
-
Hi,
welchen Returntyp hat Foo::SetFunc() ?
Gruß,
Simon2.
-
Um den Rückgabetyp des FPs gehören keine klammern, und die Parameternamen sind nicht unbedingt nötig.
-
Ein
typedef void my_funct(const X&);wäre hier vielleicht auch ganz praktisch.