如何添加带指针的构造函数作为参数

时间:2016-08-26 06:15:44

标签: c++

我有以下结构(在头文件中):

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。

1 个答案:

答案 0 :(得分:2)

您不能将指向成员函数的指针作为静态函数传递。原因是成员函数需要将某些内容传递给this指针,而静态函数则不需要(并且编译器需要检查您传递的内容的类型)。

另请参阅:Function pointer to member function