函数作为参数
- 函数作为参数的时候,需要声明函数的结构
- 一般的形式为:
func(T (*func)(V args))
- 使用的时候,直接使用对应参数类型的函数名即可
- 函数的名字就是指向内存函数开始执行时的指针,因此可以直接进行赋值
函数作为参数的使用
#include<iostream>
using namespace std;
void fun(int* a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
void swapFunc(void (*func)(int *a, int *b) ) {
int *a = new int(1);
int *b = new int(2);
cout << "Old _ a : " << *a << " b: " << *b << endl;
func(a, b);
cout << "New _ a : " << *a << " b: " << *b << endl;
delete a;
delete b;
}
int main () {
swapFunc(fun);
return 0;
}
Old _ a : 1 b: 2
New _ a : 2 b: 1