2013-04-29 210 views
0

如果我想指针的东西的数组,我宣布这样的:阵列的函数指针的指针

Type** var = new Type*[8]; 

,并使用它像这样:

if(var[0] != NULL) 
    // Do something 

但我怎么能有一个类似的方式的函数指针数组?事情是这样的,也许:

typedef bool (*Handler)(int, int); 
Handler** list = new Handler*[8]; 

... 

Handler* func = list[0]; 
if(func != NULL) 
    *func(6, 5); 

回答

2

你必须:

typedef bool (*Handler)(int, int); 

Handler* list = new Handler[8]; 

Handler func = list[0]; 
if (func != NULL) 
    func(6, 5); 

只是不要把额外*

+0

我爱你。现在我感到很傻...(当SO允许我时,会接受答案) – user600003 2013-04-29 05:55:41

+0

函数指针的语法有时会让人困惑,方法指针是另一个有趣的事情:D – SeedmanJ 2013-04-29 05:56:47

+1

Nitpick,但是你可以放入'*'正确的,'(* func)(6,5);'。这是最初的C语法(这就是为什么我仍然发现自己在使用它),但是在某些时候'*'变成了可选的。 – john 2013-04-29 06:05:04