我有以下结构(在头文件中):
struct StateTransitions {
State currentState;
State nextState;
void (*fn)();
StateTransitions (State currentState, State nextState, void (*fn)())
{
}
};
我试图将这个结构的一些实例推送到一个向量(在.cpp文件中):
void MyClass::Start()
{
}
transitions.push_back(StateTransitions(Low, Started, &MyClass::Start));
我无法编译。我不确定我在类中的构造函数的声明是否正确。
添加构造函数的正确方法是什么,以便我不能将这种类型的对象添加到向量中?
我正在使用pre-C ++ 11。
答案 0 :(得分:2)
您不能将指向成员函数的指针作为静态函数传递。原因是成员函数需要将某些内容传递给this
指针,而静态函数则不需要(并且编译器需要检查您传递的内容的类型)。