Method Pointer
-
Salut!
Ich habe eine Basisklasse(CCommandHandler) und eine Erbklasse(CTeachMenu).
Bei der Basisklasse habe ich eine private Methode die als Parameter einen Pointer einer Methode will.typedef EHRESULT ( CCommandHandler::* tMethodToExecutePtr ) ( ); void OpenFiniteProgressBar(CCommandController::tMethodToExecutePtr);Beim Aufruf dieser Methode wird eigentlich immer dieselbe Methode angegeben.
ABER:: Bei der Erbklasse wird diese Methode überschrieben. Und Somit muss auch die überschriebene Methode angegeben werden können.Das verträgt sich natürlich nicht mit der typedef...
Kann man diese typedef irgendwie Klassenneutral definieren??? oder gibt es sonst eine gute Lösung??mfg simu
-
Wenn du immer die selbe Methode aufrufen willst, brauchst du dafür doch keinen Pointer. Das ist eher ein Fall für virtuelle Methoden:
class base { public: virtual void do_something() { cout<<"Base class\n"; } }; class derived : public base { public: virtual void do_something() { cout<<"Derived class 1\n"; } };