- 1
- 0
- 约4.91千字
- 约 27页
- 2016-10-28 发布于湖北
- 举报
主讲:魏英 运算符重载 * 什么是运算符重载 问题举例——复数的运算 class complex { public: complex(double r=0.0,double i=0.0) {real=r; imag=i;} void display(); //显示复数的值 private: double real; double imag; } * 问题: 用“+”、“-”能实现复数的加减运算吗? 实现复数加减运算的方法 ——重载“+”、“-”运算符 运算符重载的实质——对已有的运算符赋予多重含义。 运算符重载的必要性——C++中定义的运算符其运算对象只能是基本数据类型,而不适用于用户自定义的类型。 不可以重载的运算符有: . .* :: ?: sizeof 什么是运算符重载 * 运算符重载的实现机制: 1)将制定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参。 2)编译系统对重载运算符的选择,遵循函数重载的选择原则。 什么是运算符重载 * 运算符重载的规则和限制: 1)只能重载C++语言中已有的运算符,不可臆造新的。 2)不可改变原运算符的优先级和结合性。 3)不能改变操作数的个数。 4)经重载的运算符,其操作数至少应该有一个是自定义类型。 什么是运算符重载 * 运算符重载的两种形式: 1)重载为类成员函数 2)重载为友元函数 什么是运算符重载 * 运算符函数 声明形式 函数类型 operator 运算符(形参) { …… } 重载为成员函数时 参数个数=原操作数个数-1 (后置++、--除外) 重载为友元函数时 参数个数=原操作数个数,且至少应该有一个自定义类型的形参。 * 运算符成员函数的设计 双目运算符B 如果要重载B为类成员函数,使之能够实现表达式oprd1 B oprd2,其中oprd1为A类对象,则B应被重载为A类的成员函数,形参类型应该是oprd2所属的类型。 经重载后,表达式oprd1 B oprd2相当于 oprd1.operator B(oprd2) 运算符重载为类成员函数 * 例:将“+”、“-”运算重载为复数类的成员函数。 规则:实部和虚部分别相加减。 操作数:两个操作数都是复数类对象。 class complex { public: complex(double r=0.0,double i=0.0) {real=r; imag=i;} complex operator +(complex c2); complex operator -(complex c2); void display(); private: double real; double imag; }; 运算符重载为类成员函数 * complex complex::operator +(complex c2) { complex c; c.real=c2.real+real; c.imag=c2.imag+imag; return c; } complex complex::operator -(complex c2) { complex c; c.real=real-c2.real; //顺序不能颠倒 c.imag=imag-c2.imag; return c; } 运算符重载为类成员函数 void complex::display() {cout(real,imagi)endl;} int main() { complex c1(5,4),c2(2,10),c3; cout“c1=”; c1.display(); cout“c2=”; c2.display(); c3=c1-c2; cout“c3=c1-c2=”; c3.display(); c3=c1+c2; cout“c3=c1+c2=”; c3.display(); return 0; } c1=(5,4i) c2=(2,10i) c3=c1-c2=(3,-6i) c3=c1+c2=(7,14i) 运算符重载为类成员
您可能关注的文档
最近下载
- 数字图像处理图像编码.ppt VIP
- 湖北城市建设职业职业技术学院2025年高职单招考试城市燃气工程技术专业考试大纲.pdf VIP
- 长帝电烤箱TV42W使用说明书用户手册.pdf
- 气象学与气候学课件.pptx
- 电子科技大学《光电图像处理》 第六章 图像编码与压缩 ppt课件.pptx VIP
- 对外经济贸易大学2021-2022学年《Python程序设计》期末考试试卷(A卷)及标准答案.docx
- 高考数学极值点偏移练习题(含答案).docx VIP
- 化工过程安全管理导则-装置安全规划与设计课件.pptx VIP
- 五脏与情志 jt叔叔 JT叔叔伤寒杂病论慢慢教(.)五脏与情志.doc VIP
- 图像处理与分析图像的编码技术.ppt VIP
原创力文档

文档评论(0)