C++面向对象程序设计 教学课件 作者 朱战立 张玉祥 C++4.ppt

C++面向对象程序设计 教学课件 作者 朱战立 张玉祥 C++4.ppt

ID:50041722

大小:194.00 KB

页数:35页

时间:2020-03-08

C++面向对象程序设计 教学课件 作者 朱战立 张玉祥 C++4.ppt_第1页
C++面向对象程序设计 教学课件 作者 朱战立 张玉祥 C++4.ppt_第2页
C++面向对象程序设计 教学课件 作者 朱战立 张玉祥 C++4.ppt_第3页
C++面向对象程序设计 教学课件 作者 朱战立 张玉祥 C++4.ppt_第4页
C++面向对象程序设计 教学课件 作者 朱战立 张玉祥 C++4.ppt_第5页
资源描述:

《C++面向对象程序设计 教学课件 作者 朱战立 张玉祥 C++4.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章友元和运算符重载掌握:友元的概念、设计方法;运算符重载为成员函数的方法;运算符重载为友元函数的方法;友元的基本概念类似与现实世界,给朋友以更大的分享权利优点:给设计人员提供了便利性缺点:使面向对象软件的封装性有了一些漏洞分类友元类-类B定义类A是自己的朋友,则A是B的友元类。类A中的所有成员函数都可以访问类B的所有成员。友元函数-类B定义某个函数是自己的友元,称该函数是类B的友元函数。该函数可以访问类B的所有成员友元成员函数-类B定义类A的某个成员函数是自己的友元,称该函数是类B的友元成员函数。该函数可以访问类

2、B的所有成员友元类定义类A是类B的友元类:classB{friendclassA;//定义友元类(类B的常规定义)};可以放在类B的任意位置,通常放在类定义的首部要求类A在程序中有定义友元类不能传递,不能继承,不具有相互性例4-1友元类设计#includeclassB{friendclassA;private:inttopSecret;public:B(intt=0):topSecret(t){}intGetTopSecret(void){returntopSecret;}};classA{p

3、ublic:A(void){}~A(void){}voidchange(B&b)const{b.topSecret++;}}voidmain(void){Bb(0);Aa;a.change(b);cout<;(类A的常规定义)}函数f()是定义在类A外的一个函数。如果函数需要频繁访问类A的私有成员,可以将该函数定义成类A的友元函数#includeclassComp

4、lex{friendComplexAdd(Complexfirst,Complexsecond);friendvoidPrint(Complexcom);private:floatreal;floatimag;public:Complex(floatre=0,floatim=0):real(re),imag(im){}~Complex(void){}};ComplexAdd(Complexfirst,Complexsecond){returnComplex(first.real+second.real,first.i

5、mag+second.imag);}voidPrint(Complexcom){cout<<"("<;(类B的常规定义)};可以用定义友元类的方法代替不常用运算符重载特点:运算符使用方便。如x+yC+

6、+语言规定:重载的运算符要保持原运算符的意义。只能对已有的运算符重载,不能增加新的运算符。重载的运算符不会改变原先的优先级和结合性。运算符重载的形式成员函数友元函数允许重载的运算符(见教材93页)运算符重载为成员函数成员函数<返回值类型>operater<运算符>(形参列表)例:复数加Complexoperater+(constComplex&x)const应用程序中的表达式<对象A><运算符>(<实际参数>)例:ComplexA,B;//假设有此定义A+B;//则程序中可有这样的表达式编译系统内部表示<对象A>.o

7、perater<运算符>(实际参数)例:A.operater+(B)例-2设计一个复数类,复数运算包括加、减、乘、除、赋值、加赋值、判等和打印,要求复数运算重载为类的成员函数形式的运算符,并要求对所设计的类进行测试。#includeenumBooler{TRUE,FALSE};classComplex{private:doublereal;doubleimage;public:Complex(void):real(0),image(0){};Complex(doublerp):real(rp)

8、,image(0){};Complex(doublerp,doubleip):real(rp),image(ip){};~Complex(){};Complexoperator+(constComplex&x)const;Complexoperator-(constComplex&x)const;Complexoperator*(constCo

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

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

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