C++函数指针
函数指针
为方便调用具有相同格式(包括返回类型与参数列表)的函数,使用函数指针指向对应的函数,以调用该函数。
例如,目前有以下几个函数:
1 | string fun_a(int x) {} |
为方便调用以上函数,需要定义函数指针,其类型需要指明函数的返回值与参数列表,如下:
string (*func_pointer)(int)
,表示返回值类型为string
,参数列表为(int)
,该指针的名称为func_pointer
,类型为string (*)(int)
。
用法
将函数地址复制给函数指针即可,例如:
赋值:func_pointer = fun_a;
,调用:func_pointer(num);
函数指针数组
为方便循环调用以上函数,需要用到函数指针数组
,如:string (*func_pointer[])(int)
,即在函数指针的类型上添加[]
表示数组。
用法
1 | string (*funcs[])(int) = {fun_a, fun_b, fun_c}; |
其中,funcs
表示数组名称,数组中保存的是函数地址
,而函数名代表的就是函数地址,因此可用函数名进行初始化。
为方便使用函数指针数组,可用enum
将函数名作为下标(默认从0开始)。
示例
1 |
|
参考:
Essential C++,p60-p62
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 niliushall!
评论