我希望对象具有一种调用函数的方法(但每个对象都应调用不同的函数)。我将尝试通过示例向您展示我的意思:
class Human
{
public:
void setMyFunction(void func); // specify which function to call
void callMyFunction(); // Call the specified function
};
void Human::setMyFunction(void func) // ''
{
myFunction = func;
}
void Human::callMyFunction() // ''
{
myFunction();
}
void someRandomFunction() // A random function
{
// Some random code
}
int main()
{
Human Lisa; // Create Object
Lisa.setMyFunction(); // Set the function for that object
Lisa.callMyFunction(); // Call the function specified earlier
}
此代码(显然)不起作用,但我希望您理解我要完成的任务。
MfG、TPRammus
最佳答案
您可以使用 std::function
。
#include <functional>
class Human
{
std::function<void()> mFunc;
public:
void setMyFunction(std::function<void()> func) { mFunc = func; }
void callMyFunction() { if (mFunc) mFunc(); }
};
关于c++ - 您可以传递一个函数以便稍后调用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41493794/