Probleme mit Pointerarray auf Member-Funktionen



  • Hallo!

    Ich habe also meine Klasse MeineKlasse mit verschiedenen Funktionen und einem Funktionspointer-Array:

    class MeineKlasse
    {
    public:
        //...
        void g();
        //...
    private:
        //...
        void f1(int a, int b);
        void f2(int a, int b);
        void f3(int a, int b);
        //...
        void (*func[3]) (int, int);
    };
    

    Aus der Methode g() heraus möchte ich jetzt das Feld für die Funktionspointer dynamisch mit den Memberfunktionen füllen

    void MeineKlasse::g()
    {
        //... z.B:
        func[0] = f1;  //Klappt nicht! -> error C3867: 'MeineKlasse::f1': function call missing argument list; 
                       //use '&MeineKlasse::f1' to create a pointer to member
                       // + Error C2440 (siehe unten)
    
        //ebensowenig klappt (wie vorgeschlagen):
        func[0] = &MeineKlasse::f1; //error C2440: '=' : cannot convert from 'void (__thiscall MeineKlasse::* )(int,int)'
                                    //to 'void (__cdecl *)(int,int)'
    
    }
    

    Was hab ich da falsch gemacht?

    Grüße
    FellaR



  • http://www.newty.de/fpt/index.html

    Im Endeffekt sind Memberpointer aber Kakke, da lieber Funktoren.



  • dankeschön, jetzt klappts


Anmelden zum Antworten