为了方便,通常采用typedef定义函数指针
typedef int (*pfunc)(int,int);
pfunc p;
C++中的表达式,要么就是左值,要么就是右值。左值可以位于赋值语句的左侧,而右值却不可以。
总结来说,当一个对象被用作右值的时候,用的是对象的值(即将这个对象的值赋值或者拷贝给其他空间);
//函数指针实现回调函数
/输入参数为常量/
int process(const int &a, const int &b){
return a*b;
}
void test(int (*process)(const int&, const int&), const int &a, const int &b){
int ret = (process)(a, b);
cout<<ret;
}
/无输入参数/
int process1(int &a, int &b){
return ab;
}
void test1(int (*process)(int&, int&)){
int a = 2, b = 3;
int ret = (*process)(a, b);
cout<<ret;
}
int main(){
int a = 2, b = 3;
test(process, 2, 3);
test1(process1);
return 0;
}
版权声明:本文为qq_38036278原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。