pointer auf member function



  • Hallo,
    ich habe ein Problem welches mir bis jetzt keiner beantworten konnte.
    Ich brauch aber eine Lösung 😉
    Ich brauche einen pointer auf member functions ...typsicher 😉
    also so in der art

    typedef bool(MyClassBase::*MEMBERFUNC)(int i);
    
    [cpp]class MyClassBase{
    public:
      void addFunctPointer(MEMBERFUNC mf);
      bool foo(int i);
    }
    [/cpp]...
    MyClassBase m;
    m.addFuncPointer(&MyClassBase::foo); ...fein tut 
      aber
    
    class MyClass : public MyClassBase{
       bool foo2(int i);
    }
    
    MyClass c;
    c.addFuncPointer(&MyClass::foo2);   ...tut nicht mehr 
      ok klar ist der typedef nicht mehr richtig
      andererseits ist die klasse abgeleitet ... also auch nicht wirklich falsch
    

    Ich brauch da mal mal dringend hilfe ...und ja wir brauchen die funktion pointer 😉



  • ok klar ist der typedef nicht mehr richtig
    andererseits ist die klasse abgeleitet ... also auch nicht wirklich falsch

    Doch, es _ist_ wirklich falsch. von foo2 weis die basisklasse doch garnichts, wieso sollte es dann einen funktionszeiger dafür annehmen können?

    Mit methodenzeigern alleine ist das nicht mehr zu machen. da brauchst du einen funktor. Schau dir mal boost an, die haben da nen sehr schönen funktor(www.boost.org/doc/html/function.html), der dir das ermöglicht was du brauchst.


Log in to reply