라이브러리 API에서 함수 포인터를 설정해야 특정 작업을 수행해야 할 때마다 해당 함수를 호출 할 수 있습니다. 내 주요 소스에서사용에 관한 딜레마 멤버 함수에 대한 포인터
int (*send_processor)(char*,int);
int setSendFunctor(int (*process_func)(char*,int))
{
send_processor = process_func;
}
, 나는
int thisclass::thisfunction(char* buf,int a){//code}
thisfunction는 thisclass의 다른 기능에 따라, 클래스의 멤버 함수로 정의이 기능을 가지고있다. 그래서 나는 그것을 수업에서 분리 할 수 없다.
setSendFunctor의 멤버 함수에 대한 포인터를 설정할 수 없습니다. API 내부에서 멤버 함수의 포인터에 할당하지 않고 일반 함수 포인터 인 send_processor에 할당하기 때문입니다.
이 클래스는 파생 클래스가 아니기 때문에 가상 함수를 사용할 수 없습니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
답장을 보내 주셔서 감사합니다. Boost 나 다른 제 3 자 라이브러리를 사용할 수 없습니다. – SkypeMeSM
사용중인 라이브러리를 바꿀 수 있습니까? – Stewart
부스트 라이브러리는 어쨌든이 특별한 경우에만 제한된 도움을줍니다. 귀하의 질문을 잘못 언급 한 답변입니다. 어쨌든 어떤 식 으로든 도움이 될 수있는 부분은 C++ TR1의 일부이며, 컴파일러가이를 지원할 수도 있습니다. 그것은 표준의 일부입니다. – Omnifarious