関数を呼び出す1つのメソッドを持つオブジェクトが必要です(ただし、オブジェクトごとに呼び出す関数が異なる必要があります)。例を示して、私が何を意味するのかをお見せしようと思います。
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(); }
};
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加