// 8 使用typedef简化函数指针的声明
#include <iostream>
using namespace std;
//void (*p[5])(int&, int&);
typedef void(*p)(float&,float&);//函数指针作为函数的参数的一般形式为:
void func(void(*p)(int&,int&), int&, int&);
//该函数func有三个参数,第一个参数void(*p)(int&,int&)是个函数指针,
//它指向一个带有两个int型参数并且返回void值的函数,另外两个参数都是int型引用void square(float&x, float&y){x=x*x; y=y*y; }
void cube(float&x, float&y){x=x*x*x; y=y*y*y; }//修改
//但这里还是有问题,就是数据超出了范围
//void print(void(*p)(float&,float&), float &x, float&y)
void print(p vp, float &x, float&y)
{ cout<<"执行函数前"<<endl;cout<<"x:"<<x<<" y:"<<y<<endl;vp(x,y);cout<<"执行函数后"<<endl;cout<<"x:"<<x<<" y:"<<y<<endl;//cout<<"长的值:"<<x<<" 宽的值:"<<y<<endl;
}void Swap(float &x, float &y){ float n; n=x; x=y;y=n;}int main()
{float a=2, b=3;char choice='0';int i;p vp;//void (*p[4])(float&,float&);for(i=0; i<4; i++){cout<<"(0)退出 (1)平方 (2)立方 (3)交换x和y的值"<<endl;bool quit = false;cin>>choice;switch(choice){case '0':quit=true;break;case '1':vp = square;break;case '2':vp = cube;break;case '3':vp = Swap;break;default:vp = 0;break;}if(quit) break;if(vp == 0){cout<<"请输入一个从0到3之间的数字"<<endl;i=i-1;continue;}print(vp,a,b);}return 0;
}

  

转载于:https://www.cnblogs.com/xiangxiaodong/archive/2012/09/17/2688092.html

第十七章 特殊成员_使用typedef简化函数指针的声明相关推荐

  1. 使用typedef简化函数指针的声明

    #include <iostream> using namespace std; void square(float&x,float&y){x=x*x;y=y*y;} vo ...

  2. 第十七章 特殊成员_类的函数指针

    #include <iostream> using namespace std; class Human { public:virtual void run()=0;virtual voi ...

  3. typedef 定义函数指针

    原文地址:typedef 定义函数指针作者:兰音 (一)简单的函数指针的应用. //形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(int a){ ...

  4. c/c++ typedef定义函数指针(Hook前奏2)

    文章目录 简介 为什么一定要使用 typedef 定义函数指针呢? 简介 关于函数指针的介绍,点击超链接即可查看,这里就不做过多说明了,或者可以点击这里: https://blog.csdn.net/ ...

  5. typedef定义函数指针类型的使用

    定义函数指针 定义函数指针的方法,返回值与参数列表要与指针所要指向的函数一致 返回值 (*函数指针名)(参数列表); 使定义的函数指针ptrFunc指向函数Func,并且使用ptrFunc ptrFu ...

  6. 使用 typedef 定义函数指针,更优雅的使用函数指针

    简介 关于函数指针的介绍,这里就不做过多说明了,不了解的同学可以看看这篇博客: https://blog.csdn.net/afei__/article/details/80549202 使用 typ ...

  7. 柏西机器人_第四百六十七章 次元声波_我的手机有外星游戏最新章节

    第四百六十七章 次元声波 "我是星兽一族!"小星兽自豪地说道. 希尔柏西一愣,"星兽?怎么可能!" 作为见多识广的贝硫多拉高层,希尔柏西当然知道星兽一族的情况, ...

  8. c/c++中typedef与函数指针

    读linux代码时,常常见到形如 typedef void (*irq_flow_handler_t)(unsigned int irq, struct irq_desc *desc); 的代码. 这 ...

  9. C++之指针探究(十六):typedef结合函数指针

    相关博文:C++之指针探究(十三):函数指针数组 相关博文:C++之指针探究(十二):指针.下标.数组及其作函数参数探究 相关博文:C++之指针探究(十一):函数名的本质和函数指针 相关博文:C++之 ...

  10. 用typedef定义函数指针类型(转)

    typedef可以用于定义函数指针类型: [语法] typedef <返回类型> (*<函数类型名>)(参数表) typedef <返回类型> (<类名> ...

最新文章

  1. 火出圈!河南大学教授毕业典礼金句频现:躺平得了初一,躺平不到十五!
  2. .NET连接SAP系统专题:C#调用RFC代码(三)
  3. 外媒分析:iPhone销量低于预期是中国市场疲软影响的
  4. YYCache深入学习
  5. android 图片查看动画,Android 共享动画实现点击列表图片跳转查看大图页面
  6. 为什么要学python-为什么要学 Python?
  7. hadoop综述_Hadoop书籍赠品–综述
  8. 吴恩达神经网络和深度学习-学习笔记-28-端到端的深度学习(end-to-end deep learning )
  9. 教你在SQL Server数据库中设计表和字段
  10. 巴塞罗那IoT“首秀”归来,新华三成功展现物联网风采
  11. c语言函数二维数组调用,C语言之调用函数传递二维数组
  12. 基于Python的大数据分析实战篇(一)
  13. 图文展示目标检测的现代发展历史
  14. 常用邮箱SMTP/POP3服务器
  15. mysql身份证校验码_javascript身份证验证代码
  16. 基于C# 的学生信息管理系统
  17. 史上最拉跨的导线平差程序 2.0(by C#)
  18. 网线线序和插座插头配线规则和光纤接口分类
  19. 智慧运维平台之全息监控
  20. ORVIBO 精灵款升级分析

热门文章

  1. 基于sklearn和keras的数据切分与交叉验证
  2. Java 虚拟机学习
  3. @Transactional注解属性(2)
  4. 怎么把python从c盘移到d盘_如何转移Pycharm的设置或者缓存到其他盘
  5. IDEA java 显示build目录
  6. 程序崩溃调试 Linux开启产生coredump文件
  7. docker监听通信
  8. Hyperledger Fabric教程(15)--基于Kafka的Order服务实战
  9. java如何代码生成矩形_Java中能不能创建不是矩形的窗口。
  10. 基Java的高校毕业管理系统