1 / 21
文档名称:

第8章 运算符重载.ppt

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

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

分享

预览

第8章 运算符重载.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

第8章 运算符重载.ppt

文档介绍

文档介绍:第9章运算符重载

运算符重载的好处
plex:
plex {
public:
double real,imag;
complex(double r=0,double i=0)
{ real=r; imag=i;}
};
2加在一起,下面的语句是不能实现的:
main()
{
1(,),com2(,),total;
2; //错误
//…
return 0;
}
plex的两个对象相加,只要编写一个运算符函数operator+(),如下所示:
complex operator+(complex plex om2)
{
complex temp;
=+;
=+;
return temp;
}
我们就能方便地使用语句:
2;
2相加。
运算符重载函数的两种形式
友元运算符函数

在C++中,可以把运算符重载函数定义成某个类的友元函数,称为友元运算符函数。
1. 友元运算符函数定义的语法形式
友元运算符函数的原型在类的内部声明格式如下:
class X {
//…
friend 返回类型 operator运算符(形参表);
//…
}
在类外定义友元运算符函数的格式如下:
返回类型 operator运算符(形参表)
{
函数体
}
2. 双目运算符重载
当用友元函数重载双目运算符时,两个操作数都要传递给运算符函数。

用友元运算符函数进行复数运算。
#include<iostream>
using namespace std;
plex{
private:
double real,imag;
public:
complex(double r=0,double i=0)
{
real=r;
imag=i;
}
plex operator +(plex);
void show(){
cout<<real<<"+"<<imag<<"i";
}
};
complex operator+(complex plex om2)
{
complex temp;
=+;
=+;
return temp;
}
void main()
{
complex x(,),y(,),z;
z=x+y;
();cout<<"+";();
cout<<"=";();
cout<<endl;
}
一般而言,如果在类X中采用友元函数重载双目运算符@,而aa和bb是类X的两个对象,则以下两种函数调用方法是等价的:
aa @ bb; // 隐式调用
operator @(aa,bb); // 显式调用