2012-03-31 7 views
4

Возможно ли создать функцию, которая принимает указатель на другую функцию? Как выглядит прототип такой функции?Как передать указатель на функцию?

+2

функция указателя учебники: http://www.newty.de/fpt/index.html – surfen

+0

HTTP: //www.newty .de/fpt/fpt.html или подобное может помочь. – phimuemue

+0

Возможный дубликат [C++ function pointer as parameter] (http://stackoverflow.com/questions/2582161/c-function-pointer-as-parameter) –

ответ

6
typedef int (*func)(float, char); 

int something_that_takes_a_func(func f) { return f(3.14, 3); } 

int foo(float a, char b) { return a - b; } 

std::cout << something_that_takes_a_func(&foo) << "\n"; 
+3

+1 ... указатели на функции без typedefs просто не забавны. –

3
void f(int(*Func)()) 
{ 
    int a = Func(); 
} 

и для функции члена:

void f(int(cLass::*Func)()) 
{ 
    cLass *c = new cLass; 
    int a = (c->*Func)(); 
} 
+0

'класс' ?? ....... –

+0

@Oli, фиксированный, модифицированный ответ – gunter

Смежные вопросы