- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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++程序设计
您可能关注的文档
- ps的Action处理.docx
- PS画漂亮分析图.doc
- PS载入渐变插件的使用方法.doc
- PS第九章06渐变.doc
- PS使用直方图分析图像色彩.doc
- QG脉冲气流干燥机工艺原理.doc
- QZFX1期中复习习题精选.doc
- QUISAR610门禁机操作手册.doc
- QY-02-02风险评估及风险控制程序.doc
- PTVVisum快速自学手册.docx
- 高中数学 1-3-1-1 函数的单调性能力强化提升 新人教A版必修1.doc
- -高中语文 第6课辛弃疾词两首同步检测 新人教版必修4 .doc
- 高中物理 1.5 电势差练习 新人教版选修3-1.doc
- 高中英语 Unit4 Making the+news综合测试题 新人教版必修5.doc
- 高中数学 4-2-3 直线与圆的方程的应用能力强化提升 新人教A版必修2.doc
- 高中数学 第一次月综合素能检测 新人教A版必修1.doc
- 高中数学 3.4 简单线性规划(第1课时)练习 北师大版必修5.doc
- 高中数学 2-2-2 平面与平面平行的判定能力强化提升 新人教A版必修2.doc
- 高中数学 1-3-2 球的体积和表面积能力强化提升 新人教A版必修2.doc
- 高中数学 3.3 二元一次不等式组与简单的线性规划问题第3课时练习 .doc
文档评论(0)