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.


Anmelden zum Antworten