- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++ 第13章 多态性(例子).doc
例13.5 在类中,用字符数组实现字符串。
#include iostream.h
#includestring.h
class Student
{
char Num[10]; //学号,注意:用数组实现
char Name[10]; //姓名,注意:用数组实现
int Score; //成绩
public:
Student(char num[ ]=NULL, char name[ ]=NULL, int score=0)
{ if(num)strcpy(Num, num);
else Num[0]=\0;
if(name)strcpy(Name, name);
else Name[0]=\0;
Score=score;
}
void Show( )
{ coutNum=Num\t
Name=Name\t
Score=Scoreendl;
}
};
void main( )
{ Student stud1(01201, Mary, 88), stud2;
stud2=stud1; //A
stud1.Show( );
stud2.Show( );
}
程序的运行结果是:
Num=01201 Name=Mary Score=88
Num=01201 Name=Mary Score=88
返回ppt讲稿
例13.7 += 运算符重载函数的返回值为void
#include iostream.h
class Complex
{
double Real, Image;
public:
Complex(double r=0, double i=0)
{ Real=r; Image=i; }
void operator+=(const Complex c)//返回值为void型
{
Real+=c.Real;
Image+=c.Image;
}
void Show( )
{
coutReal;
if(Image0) cout+Imagei; //如果是正数,必须输出正号
else if(Image0) coutImagei; //如果是负数,自动输出负号
coutendl;
}
};
void main( )
{
Complex c1(2, 3), c2(4, -2);
coutc1=;c1.Show( );
coutc2=;c2.Show( );
c1+=c2; // A
coutc1+=c2;c1=;c1.Show( );
}
运行结果如下:
c1=2+3i
c2=4-2i
c1+=c2;c1=6+1i
程序中的A行被处理成 c1. operator+=(c2)。
如果有连续赋值的表达式,如c1+=c2+=c3,
编译器会处理成 c1. operator+=( c2. operator+=(c3) ),
注意划线部分是第一次赋值,表达式的结果是void类型,此时若欲做第二个赋值就不行了。
将上例中的operator+=( )重载函数改写成:
Complex operator+=(const Complex c)
// 返回值为本类类型的对象
{
Real+=c.Real;
Image+=c.Image;
return *this;
}
此时处理c1+=c2+=c3就没有问题了。
返回ppt讲稿
例13.8 对于字符串类,重载 = 运算符,返回对象自身的引用。就本例而言,可以不定义拷贝构造函数,程序能正确运行。
#include iostream.h
#include string.h
class String
{ char *Strp;
public:
String(char *s=0) // 构造函数
{ if(s)
{ Strp=new char[strlen(s)+1];
strcpy(Strp, s);
}
else Strp=0;
}
String operator = (String s) // A赋值运算符重载函数
{ if(Strp) delete [ ]Strp;
if(s.Strp)
{ Strp=new char[strlen(s.Strp)+1];
strcpy(Strp, s.Strp);
}
else Strp=0;
return * this;
}
~String( ) // 析构函数
{ if(Strp)
您可能关注的文档
- 2016年中国人民大学公共管理学院行政管理专业介绍-考研真题-考研大纲.pdf
- 2016年中国人民大学公共管理学院行政管理专业就业情况-考研真题-专业课笔记.pdf
- 2016年中国人民大学公共管理学院行政管理专业报录比-考研真题-专业课笔记.pdf
- 2016年中国人民大学公共管理学院行政管理专业报考难度-考研真题-专业课笔记.pdf
- 2016年中国人民大学公共管理学院行政管理专业考研专业介绍-考研大纲-考研经验分享.pdf
- 2016年中国人民大学公共管理学院行政管理专业考研参考书-考研真题-专业课笔记.pdf
- 2016年中国人民大学公共管理学院行政管理专业考研参考书-考研真题-考研笔记资料.pdf
- 2016年中国人民大学公共管理学院行政管理专业考研大纲-考研真题-专业课笔记.pdf
- 2016年中国人民大学公共管理学院行政管理专业考研真题-考研大纲-考研经验分享.pdf
- 2016年中国人民大学公共管理学院行政管理专业考研笔记资料-考研真题-专业课笔记.pdf
- 2023年度计算机四级真题含答案详解(研优卷).docx
- 2025年会计职称考试《初级会计实务》财务管理经典案例分析试题.docx
- 2025年事业单位招聘考试综合类职业能力倾向测验真题试卷(高等教育类).docx
- 新沪科版(2022新课标)七年级上册数学教学课件 第2章 整式加减 2.1 代数式 习题 2.1.pptx
- 2025年软件设计师考试软件项目成本估算与预算试题.docx
- 2025年初中学业水平考试地理试题精选:地理信息技术应用试题解析与答案集.docx
- 2023年度计算机四级真题精选附答案详解.docx
- 2023年度计算机四级真题往年题考附答案详解.docx
- 2023年度计算机四级真题含答案详解(达标题).docx
- 2023年度计算机四级真题带答案详解(典型题).docx
最近下载
- QB/T 4286-2012 -纱窗通用技术条件.pdf VIP
- 2024年至2025年福建省莆田市公开招聘警务辅助人员辅警结构化面试历年模拟题库二含答案.docx
- 世界卫生组织.美国癌症学会-2022 年全球癌症统计数据:GLOBOCAN 对全球 185 个国家 36 种癌症的发病率和死亡率的估计-神刊CA临床医师癌症杂志.pdf
- 机电传动控制自动物料运输线控制电路设计..doc VIP
- 美国标准公司法中文.pdf
- 第一学期高中英语教研组总结.docx VIP
- 招标代理服务质量标准与保障措施.docx VIP
- 阅读理解四年级语文阅读理解精选及答案.pdf VIP
- 重庆市大足区教育委员会部分学校调动教师考试真题2024.docx VIP
- 2024重庆市大足区教育委员会部分学校考试调动在编在岗教师笔试模拟试题及答案解析.docx VIP
文档评论(0)