【发布时间】:2013-11-22 12:56:17
【问题描述】:
假设我有一个命名空间 KeyManager 并且我有函数 press
std::vector<std::function<void()>*> functions;
void KeyManager::addFunction(std::function<void()> *listener)
{
functions.push_back(listener);
}
void KeyManager::callFunctions()
{
for (int i = 0; i < functions.size(); ++i)
{
// Calling all functions in the vector:
(*functions[i])();
}
}
我有 Car 类,在汽车的构造函数中,我想将它的 relative 函数指针传递给一个类函数,如下所示:
void Car::printModel()
{
fprintf(stdout, "%s", this->model.c_str());
}
Car::Car(std::string model)
{
this->model = model;
KeyManager::addFunction(this->printModel);
}
尝试传递相对函数指针时出现以下错误:
error C3867: 'Car::printModel': function call missing argument list; use '&Car::printModel' to create a pointer to member
我该如何解决这个问题?
【问题讨论】:
-
能否请您提供“Car::testKey”的代码,我在帖子中没有找到。
-
对不起,我从生产代码中复制并粘贴了错误,忘记重命名示例。
标签: c++ pointers stdvector std-function