Visual-C++实验报告:重载函数带默认参数时二义性的验证.doc

Visual-C++实验报告:重载函数带默认参数时二义性的验证.doc

ID:57650428

大小:114.50 KB

页数:7页

时间:2020-08-30

Visual-C++实验报告:重载函数带默认参数时二义性的验证.doc_第1页
Visual-C++实验报告:重载函数带默认参数时二义性的验证.doc_第2页
Visual-C++实验报告:重载函数带默认参数时二义性的验证.doc_第3页
Visual-C++实验报告:重载函数带默认参数时二义性的验证.doc_第4页
Visual-C++实验报告:重载函数带默认参数时二义性的验证.doc_第5页
资源描述:

《Visual-C++实验报告:重载函数带默认参数时二义性的验证.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验报告:重载函数带有默认参数时二义性的验证VisualC++程序设计学院:计算机信息技术学院年级/班级:2010年01班专业:网络工程姓名:付传广学号:1008324039指导老师:赵永进VC++实验报告【实验名称】重载函数带有默认参数时二义性的验证【实验目的及要求】验证当重载函数带有默认参数时,调用该函数会产生二义性;要求掌握产生二义性的原因,并学会在实际操作中避免调用重载函数时二义性的产生。【实验环境】电脑配置:Intel(R)Core(TM)i3CPUM370@2.40Hz2.39GHz,1.92GB的内存Windowsxp操作系统;实验软件:VisualC+

2、+编程软件。【实验地点】东区一号楼329【实验时间】2011年3月26日星期六【实验原理】利用计算机中的VisualC++程序编写出一个程序,在该程序中定义重载函数,令其中一个函数带有默认参数,通过对程序中函数的调用,参照运行该程序时VisualC++程序所产生的错误提示,分析二义性的原因,并找出避免产生二义性的方法。【实验内容】(一)编写出一个程序,在该程序中定义重载函数,使其中一个函数带有默认参数。程序及调试结果如下:出现错误为:错误原因分析:由于函数输出语句“cout<

3、都符合该语句的调用条件,致使编译器在运行程序时不能识别应该调用fun(1)还是fun(2),出现错误。如果调用的是fun(1),虽然fun(1)的实参书面不足,但fun(1)带有一个默认参数(b=0),如果实参的数目不足,系统将用声明(或定义)中的默认值b=0来补齐所缺少的参数;如果调用的是fun(2),显然只有一个实参的fun(2)符合调用要求;所以,在程序进行编译的时候产生了紊乱,出现错误,无法运行出应有的结果。(二)现将程序修改后(只在程序中使用第一个函数fun(1)):出现错误为:错误原因分析:在程序中定义函数fun(1)时,指定了变量b的默认值,这不符合重载

4、函数定义的要求,致使程序在编译时出错。在VisualC++中,允许在程序中定义或声明函数时给定一个或多个参数以默认值,这样就可以在调用函数时不给参数赋值,直接使用给定参数的默认值运行程序;但若在同一个程序中的函数既有定义又有声明时,是不能够在定义和声明中同时给定参数的默认值的。(三)将程序再次修改(即只在函数声明函数fun(1)时给定参数b的默认值,去掉在定义函数时给定参数b的默认值,):程序允许运行结果为:程序运行结果分析:在第一次调用函数fun(1)时,程序语句中对变量的赋值取代了在函数声明时参数b的默认值,得到第一个结果;在第二次调用函数fun(1)时,由于程序

5、语句只赋给了一个值,因此在函数声明时给b的默认值补全了参数的值,得到了第二个结果。(四)继续修改该程序(只在程序中使用第二个函数,显然第一个函数调用语句不可用)如下:程序运行结果为:程序运行结果是显然的。【实验分析与总结】1.当使用的重载函数带有默认参数时,在程序中调用函数时要注意避免二义性的产生。二义性的产生是因为由于重载函数仅仅是参数的个数有区别,而有的函数又带有默认参数,如果重载的函数未被赋值的形参变量个数相同的话,那么当调用函数时符合调用条件的函数会不只有一个,致使程序无法进行编译,产生错误;2.当在一个程序的函数中使用默认参数时,默认参数的值不能够在函数的定

6、义和声明中同时给定,而只能在函数声明时给定;3.通过这次实验,明白了在调用带有默认参数时可能产生二义性的原因,更加清楚的了解了重载函数在定义和声明时应该注意的问题。对于带有默认参数的重载函数的使用,应该注意避免因默认参数产生二义性,使程序可以正常运行。指导老师签字:年月日

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。