- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VisualC实验报告重载函数带默认参数时二义性的验证
实验报告:
学院:计算机信息技术学院
年级/班级:2010年01班
专业:网络工程
姓名:付传广
学号:1008324039
指导老师:赵永进
VC++实验报告
【实验名称】 重载函数带有默认参数时二义性的验证
【实验目的及要求】
验证当重载函数带有默认参数时,调用该函数会产生二义性;
要求掌握产生二义性的原因,并学会在实际操作中避免调用重载函数时二义性的产生。
【实验环境】
电脑配置:Intel(R) Core(TM) i3 CPU
M 370 @ 2.40Hz 2.39 GHz,1.92 GB的内存
Windows xp 操作系统;
实验软件:Visual C++编程软件。
【实验地点】 东区一号楼 329
【实验时间】 2011年3月26日星期六
【实验原理】
利用计算机中的Visual C++程序编写出一个程序,在该程序中定义重载函数,令其中一个函数带有默认参数,通过对程序中函数的调用,参照运行该程序时Visual C++程序所产生的错误提示,分析二义性的原因,并找出避免产生二义性的方法。
【实验内容】
(一) 编写出一个程序,在该程序中定义重载函数,使其中一个函数带有默认参数。
程序及调试结果如下:
出现错误为:
错误原因分析:
由于函数输出语句“coutfun(3)endl;”只有一个形参,而fun(1),fun(2) 中都只有一个形参变量,都符合该语句的调用条件,致使编译器在运行程序时不能识别应该调用fun(1)还是fun(2),出现错误。
如果调用的是fun(1),虽然fun(1)的实参书面不足,但fun(1)带有一个默认参数(b=0),如果实参的数目不足,系统将用声明(或定义)中的默认值b=0来补齐所缺少的参数;
如果调用的是fun(2),显然只有一个实参的fun(2)符合调用要求;
所以, 在程序进行编译的时候产生了紊乱,出现错误,无法运行出应有的结果。
(二)现将程序修改后(只在程序中使用第一个函数fun(1)):
出现错误为:
错误原因分析:
在程序中定义函数fun(1)时,指定了变量b的默认值,这不符合重载函数定义的要求,致使程序在编译时出错。
在Visual C++中,允许在程序中定义或声明函数时给定一个或多个参数以默认值,这样就可以在调用函数时不给参数赋值,直接使用给定参数的默认值运行程序;但若在同一个程序中的函数既有定义又有声明时,是不能够在定义和声明中同时给定参数的默认值的。
(三)将程序再次修改(即只在函数声明函数fun(1)时给定参数b的默认值,去掉在定义函数时给定参数b的默认值,):
程序允许运行结果为:
程序运行结果分析:
在第一次调用函数fun(1)时,程序语句中对变量的赋值取代了在函数声明时参数b的默认值,得到第一个结果;在第二次调用函数fun(1)时,由于程序语句只赋给了一个值,因此在函数声明时给b的默认值补全了参数的值,得到了第二个结果。
(四)继续修改该程序(只在程序中使用第二个函数,显然第一个函数调用语句不可用)如下:
程序运行结果为:
程序运行结果是显然的。
【实验分析与总结】
当使用的重载函数带有默认参数时,在程序中调用函数时要注意避免二义性的产生。二义性的产生是因为由于重载函数仅仅是参数的个数有区别,而有的函数又带有默认参数,如果重载的函数未被赋值的形参变量个数相同的话,那么当调用函数时符合调用条件的函数会不只有一个,致使程序无法进行编译,产生错误;
当在一个程序的函数中使用默认参数时,默认参数的值不能够在函数的定义和声明中同时给定,而只能在函数声明时给定;
通过这次实验,明白了在调用带有默认参数时可能产生二义性的原因,更加清楚的了解了重载函数在定义和声明时应该注意的问题。对于带有默认参数的重载函数的使用,应该注意避免因默认参数产生二义性,使程序可以正常运行。
指导老师签字:
年 月 日
重载函数带有默认参数时二义性的验证
Visual C++程序设计
您可能关注的文档
最近下载
- 印刷专业大学生职业发展规划.docx VIP
- 解约合同函模板(3篇).docx VIP
- 街道美化绿化提升工程施工组织设计.pdf VIP
- 新改版教科版五年级上册科学全册知识点归纳与总结(超全).docx VIP
- 教学课件《去外婆家》第2课时 2025统编版语文二年级上册.ppt
- 小学道德与法治新部编版二年级上册第四单元v第16课《祖国,我为您自豪》第1课时 了不起的优秀传统文化 教学课件2025秋.pptx VIP
- 光影大师伦勃朗作品I.pptx VIP
- 2025年保鲜膜包装机项目市场调查、数据监测研究报告.docx
- 民族团结学习计划.docx VIP
- PMB石油化工项目管理手册 第7册-招投标管理程序.doc VIP
文档评论(0)