继续上一篇
#includeusing namespace std;void swap1(int &v1, int &v2);typedef void (FP_)(int&, int&);//必须在FP_使用前定义!!!void func(int &v1, int &v2, FP_ fp);int main(){ void (*fp)(int&,int&);//here, fp is a variable cout<<"uninitialized function pointer:"< <
函数是类型(由返回值和形参列表确定),函数名则是该类型的变量!
typedef只是给这种类型取个别名,而这种类型实际上在定义函数的时候就已经存在了。 所以直接传入函数名即可! 目前的问题是:为什么定义了函数类型的变量f,却无法使用函数名(变量take)来赋值?
被告知:functions are not objects。
所以函数名当成变量名好像是有问题的???