В вашем примере pointedFunc
- это функция-член, которая возвращает int *
.Чтобы сделать его указателем на функцию, вам нужно иметь символы около pointedFunc
, например:
int (*pointedFunc)( int a, int b );
Функция typedef может сделать это более понятным:
class CFoo {
CFoo() : pointedFunc( NULL ) {}
typedef int (*funcType)(int, int);
funcType pointedFunc;
void setFunc( funcType f ) {
pointedFunc = f;
}
};
Чтобы вызвать функцию, вы можете использоватьлибо pointedFunc( 1, 2 )
, либо (*pointedFunc)(1, 2)
.Я склонен использовать последний, чтобы прояснить, что вы проходите через указатель на функцию, но любой из них будет работать.