《C++程序设计教程 第2版》教学素材PPT讲稿(教学课件)第13章 多态性(例子).doc

《C++程序设计教程 第2版》教学素材PPT讲稿(教学课件)第13章 多态性(例子).doc

ID:56721516

大小:60.00 KB

页数:28页

时间:2020-07-06

《C++程序设计教程 第2版》教学素材PPT讲稿(教学课件)第13章 多态性(例子).doc_第1页
《C++程序设计教程 第2版》教学素材PPT讲稿(教学课件)第13章 多态性(例子).doc_第2页
《C++程序设计教程 第2版》教学素材PPT讲稿(教学课件)第13章 多态性(例子).doc_第3页
《C++程序设计教程 第2版》教学素材PPT讲稿(教学课件)第13章 多态性(例子).doc_第4页
《C++程序设计教程 第2版》教学素材PPT讲稿(教学课件)第13章 多态性(例子).doc_第5页
资源描述:

《《C++程序设计教程 第2版》教学素材PPT讲稿(教学课件)第13章 多态性(例子).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、例13.5在类中,用字符数组实现字符串。#include#includeclassStudent{charNum[10];//学号,注意:用数组实现charName[10];//姓名,注意:用数组实现intScore;//成绩public:Student(charnum[]=NULL,charname[]=NULL,intscore=0){if(num)strcpy(Num,num);elseNum[0]='';if(name)strcpy(Name,name);elseName[0]='';Score=score

2、;}voidShow(){cout<<"Num="<

3、classComplex{doubleReal,Image;public:Complex(doubler=0,doublei=0){Real=r;Image=i;}voidoperator+=(constComplex&c)//返回值为void型{Real+=c.Real;Image+=c.Image;}voidShow(){cout<0)cout<<'+'<

4、main(){Complexc1(2,3),c2(4,-2);cout<<"c1=";c1.Show();cout<<"c2=";c2.Show();c1+=c2;//Acout<<"c1+=c2;c1=";c1.Show();}运行结果如下:c1=2+3ic2=4-2ic1+=c2;c1=6+1i程序中的A行被处理成c1.operator+=(c2)。如果有连续赋值的表达式,如c1+=c2+=c3,编译器会处理成c1.operator+=(c2.operator+=(c3)),注意划线部分是第一次赋值,表达式的结果是void类型,此时若欲做第二个赋值就不行了。将上

5、例中的operator+=()重载函数改写成:Complexoperator+=(constComplex&c)//返回值为本类类型的对象{Real+=c.Real;Image+=c.Image;return*this;}此时处理c1+=c2+=c3就没有问题了。返回ppt讲稿例13.8对于字符串类,重载=运算符,返回对象自身的引用。就本例而言,可以不定义拷贝构造函数,程序能正确运行。#include#includeclassString{char*Strp;public:String(char*s=0)//构造函数{if

6、(s){Strp=newchar[strlen(s)+1];strcpy(Strp,s);}elseStrp=0;}String&operator=(String&s)//A赋值运算符重载函数{if(Strp)delete[]Strp;if(s.Strp){Strp=newchar[strlen(s.Strp)+1];strcpy(Strp,s.Strp);}elseStrp=0;return*this;}~String()//析构函数{if(Strp)delete[]Strp;}voidShow(){cout<

7、tringstr1("SampleString1");Stringstr2;str2=str1;//对象赋值运算str2.Show();//输出SampleString1}但是若将程序中A行的函数头部改为:Stringoperator=(String&s),即返回本类对象,因类中有动态申请的字符串空间,则必须增加定义拷贝构造函数。因为要使用返回的对象去初始化内存临时对象,所以应在类体中增加定义拷贝构造函数如下:String(String&s)//拷贝构造函数{if(s.Strp){Strp=newchar[strlen(s.Strp)+1];strcpy(Str

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

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

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