网站大量收购闲置独家精品文档,联系QQ:2885784924

《C++程序设计》课件第4章.pptVIP

  1. 1、本文档共104页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

f函数的默认值是常数。g函数为什么错误呢?因为?*?和?=?之间没有空格,编译器会把?*?和?=?认成一个乘等于的赋值操作符,而不是在给指针赋值,所以编译器会报错。h函数的默认值是调用String类的成员函数得到的。在调用函数时,会调用c_str()函数计算,把结果赋给字符指针c。函数调用的实参按位置解析,默认实参只能用来替换函数调用缺少的尾部实参。也就是说不可以在一个默认参数的后面又跟一个非默认的参数,一旦在一个函数调用中开始使用默认参数,那么这个参数后面的所有参数都必须是默认的。例如:intg(inta=0;intb=0;char*c); //错误inth(inta=0;intb,char*c=0); //错误intf(inta=0;intb=0;char*c=0); //正确intf2(inta,intb=0,char*c=0); //正确intf3(inta,intb,char*c=0); //正确设计带有缺省实参函数的部分工作就是排列参数表中的参数,使最可能取用户指定值的参数先出现,而最可能使用缺省实参的参数出现在后面。习惯上缺省实参在公共头文件包含的函数声明中指定,而不是在函数定义中。如果缺省实参在函数定义的参数表中提供,则缺省实参只能用在包含该函数定义的文本文件的函数调用中。函数声明可以为全部或部分参数指定缺省实参。函数后继的声明中可以指定其他缺省实参。如已知下列在头文件ff.h中声明的函数声明:intff(inta,intb,intc=0); //ff.h怎样重新声明ff()来把缺省实参提供给b?下列语句是错误的(因为它重新指定了c的缺省实参):#includeff.hintff(inta,intb=0,intc=0); //错误下列看起来错误的重新声明实际上是正确的:#includeff.hintff(inta,intb=0,intc); //正确在ff()的重新声明中,b是没有缺省实参的最右边参数,因为c已经有了默认参数。因此缺省实参必须从最右边位置开始赋值的规则没有被打破。实际上可以再次声明ff()为:#includeff.hintff(inta,intb=0,intc); //正确intff(inta=0,intb,intc); //正确这样a、b分别是在后继的函数声明中被指定默认值的。上面的print函数可以用函数重载来实现。例如:voidprint(intvalue,intbase);inlineprint(intvalue){print(value,10);}而这样没有使用默认参数清楚,使用默认参数只有一个接口,而函数重载有两个。默认参数同函数重载一样,使用户可以在不同场合下使用同一函数名称。不同之处是,利用默认参数,可以由编译器来提供一个值。如果函数之间的行为差异较大,则用默认参数较为合适。那么,到底是使用函数重载还是默认参数?在类的设计时应该主要关心的是接口清晰,使使用和阅读代码的人易于理解。不要把默认参数作为一个标志去决定执行函数的哪一块,否则应改成函数重载。如果两个函数的功能有很大差异,也应该使用函数重载。但如果重载的两个函数功能一样,仅个别参数值不一样,则可以改成默认参数,且不用维护几个类似的函数。默认参数应该是一个在一般情况下放在这个位置的值。这个值出现的可能比其他值都要大,所以客户程序员可以忽略它或只在需要改变默认值时才去使用它。本章小结本章介绍了C++?中的函数重载、运算符重载以及默认参数的使用。函数重载使我们可以用一个函数名去执行不同的操作;运算符重载使我们使用函数像使用操作符一样简单;而默认参数的出现省去了我们要写一堆经常使用的参数的麻烦。在程序中恰当地运用这些功能,能使所编写的程序更加容易理解。编程技巧与注意事项:(1)使用重载对不同的类型执行概念上相同的操作;(2)有时

文档评论(0)

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

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

1亿VIP精品文档

相关文档