Funktionszeiger / Methodenzeiger
-
Hallo,
ich habe mal wieder ein kleines Problemchen.
Diesmal handelt es sich um einen Funktionszeiger bzw. Methodenzeiger. Ich komme leider mit dem Aufruf nicht klar. Hier erstmal die relevanten CodeTeile:
cBot.hclass cBot { public: Action (cBot::*getAct)(); Action getActSampleBot(); }cBot.cpp
cBot::cBot() { getAct = &cBot::getActSampleBot; } ... Action cBot::getActSampleBot() { ... }cPoker.cpp
vector<cBot> Players; ... Action Act; Act = (Players[0].*getAct)();Wo liegt der Fehler beim Aufruf? Bin echt am verzweifeln .. vielen Dank schonmal für die Hilfe!
Grüße CsT
-
Ja die Methodenzeiger - lästige Biester:
Act = (Players[0].*Players[0].getAct)();(weniger minimalistische Klammerung ist zu empfehlen).
Das erste Players[0] betsimmt nur den Objektparameter der Methode, damit weiß der Compiler aber noch nicht, wo das getAct herkommt.
-
Vielen Dank! Klappt wunderbar .. jetzt kann ich schön weiterprogrammieren, alles ist jetzt so wie es sein sollte

Viele Grüße
CsT