2012-03-31 86 views
4

是否可以創建一個函數,該函數將指針指向另一個函數?這種功能的原型是怎樣的?如何將函數指針傳遞給函數?

+2

函數指針教程:http://www.newty.de/fpt/index.html – surfen 2012-03-31 19:16:06

+0

HTTP://www.newty .de/fpt/fpt.html或類似的文件可能會有所幫助。 – phimuemue 2012-03-31 19:16:35

+0

[C++函數指針作爲參數]的可能重複(http://stackoverflow.com/questions/2582161/c-function-pointer-as-parameter) – 2012-03-31 19:17:50

回答

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的函數指針就沒有趣味。 – 2012-03-31 19:19:20

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

和用於一個成員函數:

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

'class' ?? ....... – 2012-03-31 19:18:09

+0

@Oli,固定的,修改過的答案 – gunter 2012-03-31 19:20:14