【发布时间】:2012-11-12 18:13:22
【问题描述】:
我的一位老师使用这种类型声明:
typedef void (*SortFunction)(int a[], int n);
创建一个可以保存指向函数的指针的类型 并且可以用于稍后在程序中调用该函数。
我也知道要将函数作为参数传递,您必须 将函数名括在括号中并将函数的 函数名后面括号里的参数也是这样
function someFunction( (anotherfunction)(type arg1, type arg2,...)){
...
}
我想知道的是为什么你必须像这样在括号中包装一个函数?这是大多数 C++ 编译器的内置函数还是我们程序员使用的一个技巧 为了在我们的代码中启用函数作为参数?还有,为什么“SortFunction” typedef语句中需要引用,为什么你用来利用SortFunction的变量不能只持有函数而不是指向它?
【问题讨论】:
标签: c++ function pointers wrapper typedef