您的位置:首页 > 其它

VC:返回指向函数的指针

2014-03-03 20:39 330 查看
刚开始接触函数指针,感觉特别深奥难懂,经过一个小代码的测试,终于有了一点感悟。

#include <iostream>

#include <string>

using namespace std;

using std::string;

//使用typedef为函数指针定义同义词

typedef int (*PF)(int, int);

//返回a + b

int add(int a, int b)

{

cout<<"a + b = "<<a + b<<endl;

return a + b;

}

//返回a - b

int sub(int a, int b)

{

cout<<"a - b = "<<a - b<<endl;

return a - b;

}

//定义返回函数指针的函数

PF ff(int c)

{

//由c判断执行加法还是减法,相应的将函数指针返回

if(c > 0)

return add;

else

return sub;

}

int main()

{

//间接调用

PF fun1= ff(1);//根据参数值判断返回哪个函数指针(add或者sub)

fun1(4, 5);

PF fun2 = ff(-1);

fun2(4, 5);

//直接调用

(*ff(0))(10, 10);

return 0;

}



结果无误, 哈哈继续努力!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐