我有以下结构(在头文件中):
struct StateTransitions {
State currentState;
State nextState;
void (*fn)();
StateTransitions (State currentState, State nextState, void (*fn)())
{
}
};
我正在尝试将此结构的一些实例推送到一个 vector 中(在 .cpp 文件中):
void MyClass::Start()
{
}
transitions.push_back(StateTransitions(Low, Started, &MyClass::Start));
我无法编译它。我不确定我在类中对构造函数的声明是否正确。
添加构造函数的正确方法是什么,这样我就不能将这种类型的对象添加到我的 vector 中?
我使用的是 C++11 之前的版本。
最佳答案
您不能将指针作为静态函数传递给成员函数。原因是成员函数需要将某些内容传递给 this
指针,而静态函数则不需要(并且编译器需要检查您作为 this 传递的任何内容的类型)。
关于c++ - 如何添加带有指向函数的指针的构造函数作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39159491/