- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 类和对象——运算符重载
说明: (1)几乎所有的运算符都可用作重载,但下列运算符不允许重载: . .* ?: :: (2)有些运算符不能重载为友元函数: : = () [] ? 作业 1、编程实现如下题目:答案3-27,3-28 已知类Point有x,y坐标,类中的方法有构造函数、显示x,y坐标信息的函数show等。请实现类Point中的重载操作符“+”, “+=”使得 Point p1,p2,p3; p3=p1+p2; 语句合法。 请分别采用(1)类成员函数方法,(2)友元函数方法。 例:重载关系运算符 (1)类成员函数方法3-29,(2)友元函数方法3-40 例:重载一元自加、自减运算符,以自加为例3-41:友元方法 (1)函数类型 operator++() //前置运算 (2)函数类型 operator++(int) //后置运算 流类库的类层次 ios基类 是所有基本流类的基类,其他基本流类均由该类派生出来。 istream类和ostream类 输入类,通过该类对象可以进行输入操作。 输出类,通过该类对象可以进行输出操作。 iostream类 以istream类和ostream类为基类,多重继承派生。可同时进行输入输出操作。 Ifstream 文件输入流类: 继承istream类,实现文件到程序的读操作。(即,数据从文件读入到内存。) ofstream 文件输出流类: 继承ostream类,实现程序到文件的写操作。(即,数据从内存输出到文件。) fstream 文件输入输出流类: 继承iostream类,同时实现文件读写操作。 cin 是 istream 的对象,cout 是 ostream 的对象 重载“流插入运算符”和“流提取运算符” 6.3.4 重载流插入和流提取运算符 * 第3章 类和对象 ——运算符重载 函数的重载 所谓函数的重载是指完成不同功能的函数可以具有相同的函数名。 C++的编译器是根据函数的实参来确定应该调用哪一个函数的。 int fun(int a, int b) { return a+b; } int fun (int a) { return a*a; } void main(void) { coutfun(3,5)endl; coutfun(5)endl; } 8 25 输出: 1、定义的重载函数必须具有不同的参数个数,或不同的参数类型。只有这样编译系统才有可能根据不同的参数去调用不同的重载函数。 2、仅返回值不同时,不能定义为重载函数。 int sum, a=3, b=2; //(int)=(int) + (int) sum=a+b; float add, x=3.2, y=2.5; //(float)=(float) + (float) add=x+y; 系统自动识别数据类型 C++运算符: class A { float x, y; public: A(float a=0, float b=0){ x=a; y=b; } } void main(void) { A a(2,3), b(3,4), c; c=a+b; } 两对象不能使用+,必须重新定义+ 编译系统中的运算符“+”本身不能做这种运算,若使上式可以运算,必须重新定义“+”运算符,这种重新定义的过程称为运算符的重载。 运算符重载就是赋予已有的运算符多重含义。C++通过重新定义运算符,使它能够用于特定类的对象执行特定的功能。 为了重载运算符,必须定义一个函数,并告诉编译器,遇到这个重载运算符就调用该函数,由这个函数来完成该运算符应该完成的操作。这种函数称为运算符重载函数,它通常是“类的成员函数”或者是“友元函数”。运算符的操作数通常也应该是类的对象。 (1)重载为类的成员函数 格式如下: 类名 operator运算符(参数表) { 函数体 } A operator + (A a); //重载了类A的“+”运算符 其中:operator是定义运算符重载函数的关键字,它与其后的运算符一起构成函数名。 返回类型 运算的对象 关键字 函数名 运算的对象 class A { int i; public:A(int a=0) { i=a; } void Show(void){ couti=iendl; } void AddA(A a, A b) //利用函数进行类之间的运算 { i=a.
您可能关注的文档
最近下载
- 【有“化”好说1】必修1 物质的量、氧化还原反应.pdf VIP
- 读《思维导图与小学英语教学》有感.docx VIP
- 《旅游景区服务与管理》教案 第7课 熟悉旅游景区的自助式解说服务.docx VIP
- PSA15000Nm3h制氢装置操作手册.pdf VIP
- 《旅游景区服务与管理》教案 第6课 做一名优秀的景区讲解员.docx VIP
- 《旅游景区服务与管理》教案 第5课 认识旅游景区的解说服务.docx VIP
- 开利吊顶式新风机新样本N-DBFP(X)DFP(X).pdf VIP
- 【大单元教学】第四章 中国的经济发展 单元教学分析 人教版地理八年级上册.docx
- 历届茅盾文学奖获奖作品名 单.doc VIP
- 检验仪器分析技术 课件 第一章 临床检验分离仪器.pptx
文档评论(0)