【发布时间】:2014-06-15 16:33:10
【问题描述】:
这可能是迟钝的,我已经搜索并尝试了很多解决方案,但总是出错。
class mainStateMachine;
typedef void (mainStateMachine::*StateProc)( EIndication input);
class mainStateMachine
{
public:
StateProc currentState;
int transition;
void rotateUntilBlobsFound ( EIndication input);
void clarifyImage (EIndication input);
}
然后:
main()
{
int input=0;
StateProc BLA;
mainStateMachine mainMachine;
mainMachine.currentState=&mainStateMachine::rotateUntilBlobsFound;
BLA=mainMachine.currentState;
BLA(input);
}
由于某种原因这不起作用,告诉我“必须使用 '.' 或 '->' 来调用 'BLA (...) 中的指向成员函数的指针”但即使在我做 *BLA(输入);它不起作用。 我真的不明白为什么这不起作用。
【问题讨论】:
-
BLA 需要一个指向实例的指针
-
mainMachine.*BLA应该可以工作。 -
是的,非常感谢,现在看起来很明显了!
标签: c++ function class pointers