C++ 将函数指针传递给要从类成员调用的草图函数

C++ 将函数指针传递给要从类成员调用的草图函数,c++,function-pointers,C++,Function Pointers,在我的素描中,我调用一个类的成员(foo)。我希望该成员在我的代码(myBar)中调用一个函数。写这篇文章的正确和最简单的方法是什么?尽管我觉得这个问题很难理解,但我认为您希望使用std::function对象(C++11): 在栏中可以使用()作为参数传递的函子。例如: void aFunction(int p_index); // Typical function std::function<void(int)> func = aFunction;

在我的素描中,我调用一个类的成员(foo)。我希望该成员在我的代码(myBar)中调用一个函数。写这篇文章的正确和最简单的方法是什么?

尽管我觉得这个问题很难理解,但我认为您希望使用
std::function
对象(C++11):

栏中
可以使用
()
作为参数传递的函子。例如:

void aFunction(int p_index);               // Typical function

std::function<void(int)> func = aFunction; // Make it a functor
bar(func);                                 // Pass it as an argument.
void条(const std::function&p_func)
{
p_func(5);//调用由p_func包装的函数,并将5作为参数。
}

函子在类中也是可用的。请注意,函子与函数指针不同,但对于您的应用程序来说,它似乎更方便。它还允许你使用lambda表达式(C++相当于匿名函数)

你的问题还不清楚。主要是因为你的代码太伪了。请把它做成一个表格。请澄清你的问题,很难理解你到底想做什么。
#include <functional>

void bar(const std::function<void(int)>& p_func);  // Takes a functor as an argument
void aFunction(int p_index);               // Typical function

std::function<void(int)> func = aFunction; // Make it a functor
bar(func);                                 // Pass it as an argument.
void bar(const std::function<void(int)>& p_func)
{
    p_func(5);  // Calls the function wrapped by p_func with 5 as an argument.
}