В приведенной ниже строке command_rq, которая не компилируется, как я могу вызвать функцию в этом случае? Как мне изменить функцию, чтобы заставить ее работать?Как передать переданную функцию (функция ptr передана как аргумент функции)
#include <iostream>
using namespace std;
struct Command {
bool RequestA() { cout << "RequestA\n"; return true; }
bool RequestB() { cout << "RequestB\n"; return true; }
bool RequestC() { cout << "RequestC\n"; return true; }
};
typedef bool (Command::*Request)();
class handler {
public:
handler(Command* cmd) : command_(cmd) { }
// *** How to now call specific function passed?
void doX(Request rq) { command_->rq(); }
void doA() { doX(&Command::RequestA); }
void doB() { doX(&Command::RequestA); }
void doC() { doX(&Command::RequestA); }
private:
Command* command_;
};
int main() {
Command* pCmd = new Command;
handler h(pCmd);
h.doA();
}
'(команда _-> * RQ)();' – user657267