C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 C++4
35页1、第四章 友元和运算符重载,掌握: 友元的概念、设计方法; 运算符重载为成员函数的方法; 运算符重载为友元函数的方法;,友元的基本概念,类似与现实世界,给朋友以更大的分享权利 优点:给设计人员提供了便利性 缺点:使面向对象软件的封装性有了一些漏洞 分类 友元类 类B定义类A是自己的朋友,则A是B的友元类。类A中的所有成员函数都可以访问类B的所有成员。 友元函数 类B定义某个函数是自己的友元,称该函数是类B的友元函数。该函数可以访问类B的所有成员 友元成员函数 类B定义类A的某个成员函数是自己的友元,称该函数是类B的友元成员函数。该函数可以访问类B的所有成员,友元类,定义类A是类B的友元类: class B friend class A; /定义友元类 (类B的常规定义) ; 可以放在类B的任意位置,通常放在类定义的首部 要求类A在程序中有定义 友元类不能传递,不能继承,不具有相互性,例 41 友元类设计,#include class B friend class A; private: int topSecret; public: B(int t = 0):topSecret(t) in
2、t GetTopSecret(void) return topSecret; ;,class A public: A(void) A(void) void change(B ,友元函数,定义函数f ()是类A的友元函数 class A friend ; (类A的常规定义) 函数f()是定义在类A外的一个函数。 如果函数需要频繁访问类A的私有成员,可以将该函数定义成类A的友元函数,#include class Complex friend Complex Add ( Complex first, Complex second); friend void Print( Complex com); private: float real; float imag; public: Complex( float re = 0, float im = 0): real(re), imag(im) Complex(void) ;,Complex Add( Complex first, Complex second ) return Complex( first.real +second.real,
3、first.imagsecond.imag ); void Print( Complex com) cout “(“ com.real “, “ com.imag “)“ ; void main(void) Complex com1(3, 10), com2(6, 8), com3; com3 = Add(com1, com2); Print(com3); ,友元成员函数,类A的成员函数f()是类B的友元成员函数。 class B friend ; (类B的常规定义) ; 可以用定义友元类的方法代替 不常用,运算符重载,特点:运算符使用方便。如x+y C+语言规定: 重载的运算符要保持原运算符的意义。 只能对已有的运算符重载,不能增加新的运算符。 重载的运算符不会改变原先的优先级和结合性。 运算符重载的形式 成员函数 友元函数 允许重载的运算符 (见教材93页),运算符重载为成员函数,成员函数 operater(形参列表) 例:复数加 Complex operater+(const Complex /则程序中可有这样的表达式 编译系统内部表示 .operater(实际参数) 例:A.o
4、perater+(B),例-2 设计一个复数类,复数运算包括加、减、乘、除、赋值、加赋值、判等和打印,要求复数运算重载为类的成员函数形式的运算符,并要求对所设计的类进行测试。,#include enum BoolerTRUE, FALSE; class Complex private: double real; double image; public: Complex(void):real(0), image(0); Complex(double rp):real(rp), image(0); Complex(double rp, double ip):real(rp), image(ip); Complex(); Complex operator+(const Complex ,Complex operator-(const Complex ,inline Complex Complex:operator+(const Complex ,inline Complex Complex:operator/(const Complex ,inline Booler Complex:ope
《C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 C++4》由会员E****分享,可在线阅读,更多相关《C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 C++4》请在金锄头文库上搜索。
逍遥游复习 知识点整理
近现代法德关系史 高三展示课3稿
当代大学生人生信仰及追求的调查研究
长相思 纳兰性德-ppt课件
课件:危机意识 一
英语ppt演讲关于阿甘正传
发达国家基础教育改革的动向与趋势 修改版
中国民间美术 课件.ppt
生物质发电技术与系统 课程ppt 第1章 生物质发电技术现状及发展趋势 2学时 -----2016
现代信号处理思考题 含答案
执业药师继续教育 抑郁症的药物治疗 100分
小学生的成长档案模板不用修改 万能型
增订六版 现代汉语 上册 第二章文字 思考与练习答案
国家财政ppt课件
加拿大英语介绍
六年级统计图的选择课件
中学生成长档案ppt
中国现代文学史期末复习整理
lohi和hihilo训练对女子赛艇运动员运动能力影响的比较研究
风雨贾平凹阅读答案
2024-04-11 25页
2024-04-11 37页
2024-04-11 28页
2024-04-11 31页
2024-04-11 36页
2024-04-11 29页
2024-04-11 22页
2024-04-11 27页
2024-04-11 34页
2024-04-11 32页