函数指针讲义要领.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
互联网技术就业速成班 指针与函数(II )­函数指针的应用 一、 分层与封装 1. 概念 接口:指实体把自己提供给外界的抽象化物。一般指本类提供给外界使 用的公有入口。(此处只要理解到接口是函数原型即可) 用户:不同的任务我们会扮演不同的角色,一般我们的角色有程序员: 库的开发者,提供库函数 /抽象数据类型给其他程序员(扮演用户角色) 使用。用户,可以是指使用应用程序的人员或者是使用其它程序员开发 的库来开发程序的程序员。 分层:不做分布式程序时,代码有不同层次上的逻辑称作广义上的分层 (一般是指逻辑分层而非物理分层)。 封装:将接口与实现的分离,对实现的部分进行屏蔽,外界无法访问。 描述:指库的开发者对其所提供的内容作的注释,即让使用者合理使用。 实现:指该功能如何一步一步地实现。 举例说明: 1. 豆浆机 2. 一些机器的专利(封装) 3. 库的开发商 2.头文件的作用 头文件向外界提供接口,用户可通过查看接口(或者接口的描述),来使 用其提供的内容(函数),但我们无法知道该函数是如何实现,因为开发商将实 现部分编译生成库文件,我们是无法查看到的。这也叫做实现的屏蔽(封装性)。 举例:简化库实现头文件 二、 传值与传址 例1:对下列给定的函数原型,要求大家实现。 void swap(int *a, int *b); //交换数a 和数b 的值 实现1: void swap(int *a, int *b) { int *temp = a; 1 互联网技术就业速成班 a = b; b = temp; } 实现2: void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } 思考:上述两种实现的区别在于?为什么会有这种区别? 答:传值和传址其实都是传值。因此大家只要牢记函数的实参和形参直接的 传递全部是是传值。 三、 函数指针的应用 例1:有如下函数定义: void myprint() { coutHello C++!endl; } 主函数中有如下代码,则该程序的执行结果是什么? coutmyprintendl; void (*ptr)(); coutptrendl; cout(*ptr)()endl; 例2:有如下函数定义: void myprint(int a) { couta = aendl; } 主函数中有如下代码,则该程序的执行结果是什么? void (*ptr)(); cout(*ptr)(6)endl; 函数指针作参数 例3:自定义比较函数,然后利用sort 函数对给定的数组(整型)进行排序。 2 互联网技术就业速成班 程序清单: #include iostream #include algorithm

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档