VisualC实验报告:重载函数带默认参数时二义性验证.doc_第1页
VisualC实验报告:重载函数带默认参数时二义性验证.doc_第2页
VisualC实验报告:重载函数带默认参数时二义性验证.doc_第3页
VisualC实验报告:重载函数带默认参数时二义性验证.doc_第4页
VisualC实验报告:重载函数带默认参数时二义性验证.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告:重载函数带有默认参数时二义性的验证Visual C+程序设计学院:计算机信息技术学院年级/班级:2010年01班专业:网络工程姓名:付传广学号:1008324039指导老师:赵永进VC+实验报告【实验名称】重载函数带有默认参数时二义性的验证【实验目的及要求】验证当重载函数带有默认参数时,调用该函数会产生二义性;要求掌握产生二义性的原因,并学会在实际操作中避免调用重载函数时二义性的产生。【实验环境】电脑配置:Intel(R)Core(TM)i3CPUM370 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的默认值补全了参数的值,得到了第二个结果。(四)继续修改该程序(只在程序中使用第二个函数,显然第一个函数调用语句不可用)如下:程序运行结果为:程序运行结果是显然的。【实验分析与总结】1. 当使用的重载函数带有默认参数时,在程序中调用函数时要注意避免二义性的产生。二义性的产生是因为由于重载函数仅仅是参数的个数有区别,而有的函数又带有默认参数,如果重载的函数未被赋值的形参变量个数相同的话,那么当调用函数时符合调用条件的函数会不只有一个,致使程序无法进行编译,产生错误;2. 当在一个程序的函数中使用默认参数时,默认参数的值不能够在函数的定义和声明中同时给定,而只能在函数声明时给定;3. 通过这次实验,明白了在调用带有默认参数时可能产生二义性的原因,更加清

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论