2017-11-19 1 views
0

에서 함수 포인터를 설정하는 방법은 다음을 수행 할 :다른 함수 포인터

void *f1(int); 
void *f2(int); 

f1 = f2; 

그것이 void*(int)

void*(int)에 변환하지 못할 말한다 나는 기본적으로 키보드 핸들러이 필요합니다. 모든 개체가 기본 키보드 처리기 함수 포인터 주소를 가리킨 다음 마우스로 선택하면 해당 키보드 처리기를 가리 키도록 설정합니다.

저는 이것을 좋은 코드 설계 원칙과 일반적으로 알고 싶습니다.

개체가 키보드 처리기를 설정할 수있는 방법이 있으면 알려 주시기 바랍니다. 협착이나 동역학 다형성을 사용하는 트릭이있을 수 있습니까?

답변

4

f1f2int 인수를 취하여 void*을 반환하는 함수라고 선언했습니다. 함수는 물론 할당 할 수 없습니다. 이 것

void (*f1)(int); 
void (*f2)(int); 
+0

OMG 정말 고맙습니다. – ClemsonCoder

+0

최대한 빨리 확인해 드리겠습니다. – ClemsonCoder

0

는 C++ 할 수있는 방법 :

기능이 int 인수를 복용하고 void 반환에 대한 포인터로 f1f2을 선언하려면, 당신은 괄호를 사용할 필요가

std::function<void(int)> f1; 
std::function<void(int)> f2; 
+0

cpp 방법은 필요하지 않으면 오버 헤드를 지불하지 않습니다. – RiaD