- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十三章运算符重载
在非面向对象的程序设计语言中,所有的运算符都已预先定义了它们的用法
及意义,并且这种用法是不允许用户改变的。在 C++ 中,允许程序设计者重新定
义已有的运算符,并能按用户规定要求去完成特定的操作,这就是运算符的重载。
运算符的重载从另一个方面体现了 OOP 技术的多态性,且同一运算符根据不同
的运算对象可以完成不同的操作。
13.1 运算符重载
对于面向对象的程序设计来说,运算符的重载可以完成两个对象之间的复杂
操作,如二个对象间的加法,二个对象间的减法等。这种运算对于用户来说应该
是透明的。运算符重载的原理是:一个运算符只是一个具有特定意义的符号,只
要我们告诉编译程序在什么情况下如何去完成特定的操作,而这种操作的本质是
通过特定的函数来实现的。
13.1.1 重载运算符
为了重载运算符,必须定义一个函数,并告诉编译器,遇到这个重载运算符
就调用该函数,由这个函数来完成该运算符应该完成的操作。这种函数称为运算
符重载函数,它通常是类的成员函数或者是友元函数。运算符的操作数通常也应
该是对象。
定义运算符重载函数的一般格式为:
type ClassName :: operator @(Arg)
{
; // 函数体
}
其中 type 为函数返回值的类型,ClassName 为运算符重载函数所在的类名,@为
要重载的运算符,Arg为函数的形参表,operator 是关键字,它与其后的一个
运算符一起构成函数名。由于运算符重载函数的函数名是以特殊的关键字开始
的,编译器很容易与其它的函数名区分开来。
例 13.1 定义一个复数类,重载+和-运算符,使这二个运算符能直接完成
复数的加法和减法运算。
#include iostream.h
class Complex{
float Real, Image;
public:
Complex(float r=0,float i=0){Real=r;Image=i;}
float GetR() {return Real;}
float GetI(){return Image;}
void Show()
{
cout Real=Real\tImage=Image\n;
}
Complex operator +(Complex ); //重载运算符+
Complex operator +(float ); //重载运算符+
void operator +=(Complex ); //重载运算符+=
void operator =(Complex ); ////重载运算符=
};
Complex Complex::operator +( Complex c)
{
Complex t;
t.Real=Real + c.Real;
t.Image = Image + c.Image;
return t;
}
Complex Complex::operator +(float s)
{
Complex t;
t.Real =Real + s;
t.Image = Image;
return t;
}
void Complex::operator +=(Complex c)
{
Real= Real + c.Real;
Image = Image + c.Image;
}
void Complex::operator =(Complex c)
{
Real = c.Real;
Image =c.Image;
}
void main(void )
{
Complex c1(25,50),c2,c3(100,200);
Complex c,c4(200,400);
c1.Show();
c2=c1
您可能关注的文档
最近下载
- 危险化学品生产经营单位安全管理.pptx VIP
- DBJ33_T 1283-2022顶管工程技术规程.pdf VIP
- 《防止电力建设工程施工安全事故三十项重点要求》宣贯与解读.pdf VIP
- 新能源汽车高压安全操作规范.pptx VIP
- 吉利汽车财务报表分析.docx
- 2024年中考语文试题分项汇编:词语运用(第03期)(解析版).pdf VIP
- SMW工法围护桩监理实施细则[全面]范本.doc VIP
- 浅谈市政工程项目成本控制开源与节流.doc VIP
- 最新人教版数学一年级下册第七单元《7.3 数量关系》教学课件(2025年春-新教材).pptx VIP
- 2024年中考语文一轮专题复习:图文转换 专项练习题(Word版,含答案).docx VIP
文档评论(0)