ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:152.47KB ,
资源ID:6121560      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6121560.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++实验3成员函数的重载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++实验3成员函数的重载.docx

1、C+实验3成员函数的重载实验3 成员函数的重载1实验目的及要求:1)掌握普通函数重载的方法;2)掌握成员函数重载的方法;2实验内容:21分析下面的程序,指出程序运行的结果: class ListClass int *List ; unsigned nMax ; unsigned nElem ; public: void Init (int n=10) List=new int n ; nMax=n ; nElem=0 ; int Elem(int); int &Elem(unsigned n)return List n ; unsigned Elem(void) return nElem ;

2、unsigned Max (void)return nMax ; void Print (void) ; int GetElem(int i) if(i=0)&(i=nElem)return List i ; else return 0; void Destroy (void) delete nMaxList ; ;int ListClass :Elem(int elem) if(nElemnMax) ListnElem+=elem; return nElem ; else int*list ; list=new int nMax+1; for(int i=0 ; inElem ; i+) l

3、ist i=Listi ; delete nMaxList ; nMax+ ; List=list; ListnElem+=elem ; return nElem ; void ListClass :Print(void) for(int i=0 ;inElem ; i+) cout Listit; coutn;void main (void ) ListClass list ,list1; list.Init(10); list1.Init(20); for (int i=0 ; i10 ; i+) list1.Elem(i) ; cout线性表list的元素的个数为:list.Elem()

4、n ; cout线性表list长度为:list.Max()n ; cout线性表list1的元素的个数为:list1.Elem()n ; cout线性表list1长度为:list1.Max()n; list1.Print(); list1.Elem(3u)=100 ; cout现在线性表list1中的第三个值为:list1.Elem(3u)n ; list1.Elem(20); list1.Elem (200); cout现在线性表list1中元素的个数为:list1.Elem()n ; list1.Print();cout现在线性表list1中的最后一个元素为:list1.GetElem(l

5、ist1.Elem()-1)n ; list.Destroy(); list1.Destroy();分析:ListClass-*List:int-nMax:unsigned-nElem:unsigned+Init(int n=10):void+Elem(int):int+&Elem(unsigned):int+Elem(void):unsigned+Max(void):unsigned+print(void):void+GetElem(int):int+Destroy(void):void程序执行过程如下:由于接下来的都是对Elem和Print的调用,所以不做分析了创建ListClass类的两

6、个对象list和list1list.List=int 10 , nMax=10; nElem=0List1.List=int 20 , nMax=20; nElem=0int i=0i10 list1.nElenlist1.nMax T Fint*list ;list=new int nMax+1;int j=0 ; elme=ijlist1.nElem ;list j=list1.Listj ; j+;delete nMaxlist.List ; list1.nMax+; list1.List=list; list1.Listlist1.nElem+=elem ;return list1.n

7、Elem ; elem=i list1.ListnElem+=elem; return nElem; i+;输出线性表list的元素的个数list.nElem=0输出线性表list长度list.nMax=10输出线性表list1的元素的个数 list1.nElem=10输出线性表list1长度 list1.nMax=20int i=0ilist1.nElem. 输出list.Listi i+程序运行情况和结果如下:32 编写并调试程序: 1) 使用函数重载的方法定义两个重名函数,分别求出整型数的两点间距离和实型数的两点间距离。2)定义一个Cpoint类,用成员函数的重载实现上题的功能。并编写主

8、函数测试。3) 使用重载的方法编写一个求整数、实数和双精度数的平方数的类。并用一个主函数进行测试。Square-x:int-y:flaot-z:double+Square(int):int+Square(float):float+Square(double):doubleCpoint-distance:float+Cpoint(int,int):foat+Cpoint(float,foat):foat代码实现如下:#include #include class Cpointprivate: double distance;public: Cpoint(int x1,int y1,int x2,

9、int y2) distance=sqrt(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1); cout整型数distance=distanceendl; Cpoint(float x1,float y1,float x2,float y2) distance=sqrt(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1); cout实数distance=distanceendl; ;class Square double s;public: Square(int i)s=i*i;cout实数平方数为sendl; Square(float i)s=i*i;cout单精度平方

10、数为sendl; Square(double i)s=i*i;cout双精度平方数为sendl;void main() Cpoint distance1(0,0,3,4); Cpoint distance2(0.0f,0.0f,3.0f,4.0f); Square(9); Square(5.0f); Square(4.0);程序实现分析:1.一开始的时候开始调试Cpoint类的时候出现了以下问题:解决方案如下:这个时候的结果为:2.经过修改和添加另外一个类后,得最终的设计代码结果如下:*4 课后练习调试下面的程序,指出程序实现的功能及程序输出结果;进一步理解函数重载及成员函数重载的实现。 1)

11、调试程序1 # includeint Abs ( int x ) / cout调用函数Abs(int)。=0 ? x :-x ; double Abs (double x) / B cout 调用函数Abs(double)。=0?x :-x ;void main ( )cout-20的绝对值是:Abs(-20)endl ; /C cout-111.11的绝对值是:Abs(-111.11) endl ;/D功能分析:程序通过两个同函数名但参数类型不同的两个函数分别实现对整型和实数型的取绝对值功能。输出结果:2)调试程序2#include int max (int a , int b);int m

12、ax (int a , int b,int c);int max (int a , int b, int c, int d);void main() coutmax(3,5)endl; coutmax(-7,9,0)endl; coutmax(23,15,3,6)b?a:b ;int max(int a, int b,int c) int t=max(a,b); return max (t , c);int max(int a ,int b ,int c ,int d) int t1=max(a,b); int t2=max(c,d); return max(t1,t2);功能分析:程序通过两

13、个同函数名但参数个数不同的三个函数分别实现对两个整数,三个整数,四个整数的求最大值功能运行结果如下:3)调试程序3# include class CAddpublic: int Add (int a , int b) /A return a+b; double Add(double x ,double y) /B return x+y ;int Add (int a , int b)return a+b ; /Cvoid main () CAdd c; cout5+3=c.Add(5,3)endl; /调用A行定义的函数 cout3.5+6.1=c.Add(3.5,6.1)endl; /调用B行定义的函数 cout5+10=Add(5,10)endl; /调用C行定义的函数功能分析:通过类的成员函数分别对整数和实数实现求和功能,另外,也可以通过子函数来实现求和功能AddAdd ( a:int ,b:int):intAdd(x:double ,y:double ):double

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1