VxWorks 응용 프로그램에 C++을 쓰고 있습니다. VxWorks는 C 기반이기 때문에 인수로 함수 포인터를 사용하는 함수는 C++의 멤버 함수 포인터와 호환되지 않습니다.구성원 함수 VxWorks의 포인터
저는 taskSpawn
과 같은 함수에 전달할 수 있도록 30 개 이상의 멤버 함수로 여러 번 인스턴스화 된 클래스 (SomeClass
)가 있습니다. 나는 이 수행 할 수있는이 두 가지 방법을 알고,하지만 기존의 솔루션 중 하나를 특히 좋아 아니에요 :
static void CallFunction1(SomeClass *objectToCallFunction1On);
static void CallFunction2(SomeClass *objectToCallFunction2On);
...
static void CallFunction30(SomeClass *objectToCallFunction30On);
void Function1();
void Function2();
...
void Function30();
:
를 사용하여 정적 함수는 특정 개체에 C의 함수 포인터를 호출
static void CallFunction(SomeClass *objectToCallFunctionOn, int functionToCall); void Function1(); void Function2(); ... void Function30();
은 특정 객체에 호출하는 기능을 지정하는 정수 또는 열거 형을 사용
정말, 정말로이 두 가지 솔루션을 싫어합니다. 이 문제에 대해 깨끗하고 간단한 해결책이 있습니까?