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

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

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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++程序设计

文档评论(0)

youshen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档