- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Rationaly-湖南大学.ppt
* * * Introduce 介绍 -HNUSS- 湖南长沙.湖南大学软件学院 Introduce 介绍 操作符重载Operator Overloading outlines 有理数类 友元函数应用 操作符重载 功能扩展 class Rational{ //数据成员:分子,分母; int fm; int fz; //成员函数:输出信息; void show(); }; 定义一种数据类型:Rational,支持分数形式的有理数的输入输出和四则运算。如:3/4 + 1/3 = 7/12 3/4 *1/3 = 1/4 private: public: int main(){ //声明一个有理数r //输出r的值 } void show() { coutfz/fmendl;} Rational:: Rational r; r.show(); class Rational{ public: //增加成员函数:初始化数据成员 }; 要对有理数的分子和分母进行初始化—— 构造函数 int main(){ //声明对象时自动调用构造函数 Rational r; //r的值等于初始值0/1 r.show(); } Rational::Rational() { fz = 0; fm = 1;} Rational(); 支持多种初始化方式,比如b =1/2? —— 构造函数重载 class Rational{ public: //增加成员函数:相乘 multiply( ); }; 要对有理数进行乘法运算 int main(){ Rational a(1,4); Rational b(1,3); Rational c; //调用成员方法mutilpy() c = a.multiply(b); } Rational Rational::multiply(Rational y) { Rational result; result.fm = (this-fm) * (y.fm); result.fz = (this-fz) * (y.fz); return result;} Rational 增加加法操作? Rational //rational.h class Rational{ //数据成员声明; //成员函数声明; }; 程序太长。。。 //rational.cpp //成员函数定义 Rational::Rational(){ ... } void Rational::show(){ ... } ... int main(){ Rational r; r.show(); //对象声明 //成员函数的调用 } #include “rational.h” class Rational{ //增加友元函数:相乘 Rational multiply( ); }; 修改乘法运算,使它变成Rational类的友元函数 int main(){ Rational a(1,4),b(1,3),c; c = multiply(a,b);} Rational multiply(Rational x,Rational y) { Rational result; result.fm = (x.fm) * (y.fm); result.fz = (x.fz) * (y.fz); return result;} friend 友元函数不属于该类,是个旁观者,所以每个操作数都必须声明 Rational x,Rational y 友元函数 友元函数 在类的内部进行声明,关键字friend,不受访问限定符控制 在类的外部进行定义,无须域作用符限制 可以访问该类的non-public成员 参与运算的对象都必须声明 无须通过对象调用 格式: class A{ friend B(); } Properties of friendship Friendship granted, not taken Class A must explicitly declare function B friend Not symmetric Not transitive 通过函数调用来实现相乘,仍然不直观 int main(){ Rational a(1,4); Rational b(
您可能关注的文档
- Matlab工程应用基础_2.ppt.ppt
- MIPS基本指令.doc
- Modbus是Modicon公司为其PLC与主机之间的通讯而发明的串行通讯协议.doc
- MSP430的软硬件C延时程序设计(一)MSP430是超低功耗16位单片机.doc
- NetworkFileSystem-NFS-蓝色部落首页.ppt
- NET项目实战》教学大纲(代码08327)建议课时150课时;学分10.doc
- part3Perl编程-安徽理工大学.ppt
- PCA基础介绍.ppt
- PDCA法在教学工作中的应用.doc
- PLC的最新发展趋势一、前言长期以来,PLC始终处于工业自动化控制.doc
- 年三年级数学下册第三四单元过关检测卷新人教版.docx
- 第十三章轴对称(复习课)1.ppt
- 15.1.2分式基本性质(2).ppt
- 期末冲刺(补全对话30道).docx
- 【华创证券-2025研报】2025年二季报公募基金十大重仓股持仓分析.pdf
- 【港交所-2025研报】景福集团 截至2025年3月31日止年度年报.pdf
- 【天风证券-2025研报】2025中报前瞻:关注预告日至财报日的景气超额.pdf
- 【国金证券-2025研报】连连数字(02598):跨境支付先行者,前瞻布局虚拟资产.pdf
- 【第一上海证券-2025研报】云工场(02512):云工(02512):IDC方案服务商,边缘云业务打造第二成长曲线.pdf
- 【东方证券-2025研报】主动权益基金2025年二季报全解析:重点关注科技医药双主线和中小盘高成长主题基金.pdf
文档评论(0)