1 / 121
文档名称:

运算符重载 (3).ppt

格式:ppt   大小:5,092KB   页数:121页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

运算符重载 (3).ppt

上传人:文库新人 2022/1/25 文件大小:4.97 MB

下载得到文件列表

运算符重载 (3).ppt

相关文档

文档介绍

文档介绍:运算符重载
第1页,本讲稿共121页
第*页 共125页
第7章 运算符重载
运算符重载是面向对象程序设计的重要特征。运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据导致不同的行为。C++中经比较
第14页,本讲稿共121页
第*页 共125页
友元运算符函数
在C++中,可以把运算符重载函数定义成某个类的友元函数,称为友元运算符函数。
当运算符重载为友元函数时可以自由地访问类的所有成员。运算符重载为友元函数时,运算符所需要的操作数都需要通过函数的形参来传递,在参数表中参数从左至右的顺序就是运算符操作数的顺序。
第15页,本讲稿共121页
第*页 共125页
友元运算符函数
友元运算符函数定义的语法形式
双目运算符重载
单目运算符重载
第16页,本讲稿共121页
第*页 共125页
友元运算符函数定义的语法形式
友元运算符函数的原型在类的内部声明格式如下:
class X {
//…
friend 返回类型 operator运算符(形参表);
//…
}
第17页,本讲稿共121页
第*页 共125页
友元运算符函数定义的语法形式
在类外定义友元运算符函数的格式如下:
返回类型 operator运算符(形参表)
{
函数体
}
第18页,本讲稿共121页
第*页 共125页
双目运算符重载
当用友元函数重载双目运算符时,两个操作数都要传递给运算符函数。
第19页,本讲稿共121页
第*页 共125页
用友元运算符进行复数运算
两个复数a+bi和c+di进行加、减、乘、除的方法如下:
加法: (a+bi)+(c+di)=(a+c)+(b+d)i
减法:(a+bi)-(c+di)=(a-c)+(b-d)i
乘法:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i
除法:(a+bi)/(c+di)=((a+bi)*(c-di))/c2+d2
第20页,本讲稿共121页
第*页 共125页
用友元运算符进行复数运算
#include <>
class complex{
public:
complex(double r=,double i=);
void print( );
friend complex operator+(complex a,complex b);
friend complex operator-(complex a,complex b);
friend complex operator*(complex a,complex b);
friend complex operator/(complex a,complex b);
private:
double real;
double imag;};
第21页,本讲稿共121页
第*页 共125页
用友元运算符进行复数运算
complex::complex(double r,double i)
{
real=r;
imag=i;
}
complex operator+(complex a,complex b)
{
complex temp;
=+;
=+;
return temp;
}
第22页,本讲稿共121页
第*页 共125页
用友元运算符进行复数运算
complex operator-(complex a,complex b)
{
complex temp;
=-;
=-;
return temp;
}
第23页,本讲稿共121页
第*页 共125页
用友元运算符进行复数运算
complex operator*(complex a,complex b)
{ complex temp;
=*-*;
=*+*;
return temp; }
complex operator/(complex a,complex b)
{ complex temp;
double t;
t=1/(*+*);