我正在为 VxWorks 应用程序编写 C++。由于 VxWorks 是基于 C 的,将函数指针作为参数的函数与 C++ 的成员函数指针不兼容。
我有一个类 ( SomeClass
),它使用 30 多个成员函数进行了多次实例化,我希望能够将它们传递给taskSpawn
. 我知道这可以实现的两种方法,但我不是特别喜欢这两种传统的解决方案:
使用静态函数调用特定对象上的 C 函数指针:
static void CallFunction1(SomeClass *objectToCallFunction1On); static void CallFunction2(SomeClass *objectToCallFunction2On); ... static void CallFunction30(SomeClass *objectToCallFunction30On); void Function1(); void Function2(); ... void Function30();
使用整数或枚举类型指定函数以调用特定对象:
static void CallFunction(SomeClass *objectToCallFunctionOn, int functionToCall); void Function1(); void Function2(); ... void Function30();
我真的,真的不喜欢这两种解决方案。有没有一个干净,简单的解决方案来解决这个问题?