1 / 77
文档名称:

C++课件.ppt

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

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

分享

预览

C++课件.ppt

上传人:ayst8776 2015/8/26 文件大小:0 KB

下载得到文件列表

C++课件.ppt

相关文档

文档介绍

文档介绍:李莉
办公室:213
联系方式:89733006(O)
l_ly588@
**********
答疑时间:周五下午
第4章运算符重载
什么是运算符重载
运算符重载的方法
重载运算符的规则
运算符重载函数作为类成员函数和友元函数
重载双目运算符
重载单目运算符
重载流插入运算符和流提取运算符
不同类型数据间的转换
运算的本质就是函数(《离散数学》)
一个运算符代表一种操作
a+b
add( a, b)
c++允许对运算符进行重载,实质是对表示某种特殊运算的函数进行重载
什么是运算符重载
引例: 用“+”运算符完成两个实数、两个复数、两个字符串的相关运算。
(1)实数:x1=10 ,x2=20,则两个实数相加的结果是:
x1+x2=10+20=30。
(2)复数:x1=10+10i,x2=20+20i,则两复数相加结果是:
x1+x2=30+30i 。
(3)字符串:x1=“ABCD”,x2=“EFGH”,则两字符串连接的结果:
x1+x2="ABCDEFGH"
问题的提出:通过函数实现复数的相加
#include <iostream>
using namespace std;
plex //plex类
{public:
Complex( ){real=0;imag=0;} //plex(double r,double i){real=r;imag=i;} //plex &c2); //声明复数相加函数
void display( ); //声明输出函数
private:
double real; //实部
double imag; //虚部
};
plex &c2)
{Complex c;
=real+;
=imag+;
return c;}
plex∷display( ) //定义输出函数
{cout<<″(″<<real<<″,″<<imag<<″i)″<<endl;}
int main( )
{Complex c1(3,4),c2(5,-10),c3; //定义3个复数对象
c3=plex_add(c2); //调用复数相加函数
cout<<″c1=″; ( ); //输出c1的值
cout<<″c2=″; ( ); //输出c2的值
cout<<″c1+c2=″; ( ); //输出c3的值
return 0;
}
运行结果如下:
c1=(3+4i)
c2=(5-10i)
c1+c2=(8,-6i)
复数加法只能调用成员函数实现,不能使用符号“+”实现,可以通过重载“+”运算符,实现如c=a+b这样的调用方式
从案例开始理解运算符重载:
思考:
我们在求解两个复数相加减的时候,如果能直接这样写代码:
c = a + b 或者 c = a - b
是不是更好呢!
c3=plex_add(c2);
c = a + b;
运算符重载:运算符重载的实质就是对已有的运算符赋予多重
含义,使同一个运算符作用于不同类型的数据时,产生不同的
行为。运算符重载的实质就是函数重载。
重载运算符“+”,使之能用于两个复数相加:
#include <iostream>
using namespace std;
plex
{public:
Complex( ){real=0;imag=0;}
Complex(double r,double i){real=r;imag=i;}
Complex operator+ (Complex &c2); //声明重载运算符的函数
void display( );
private:
double real;
double imag;};
plex∷operator+(Complex &c2) //定义重载运算符的函数
{ Complex c;
=real+;
=imag+;
return c;}
plex∷display( )
{ cout<<″(″<<real<<″,″<<imag<<″i)″<<endl;}
int main( )
{ Complex c1(3,4),c2(5,-10),c3;
c3=c1+c2; //运算符+用于复数运算
cout<<″c1=″;( );
cout<<″c2=″;( );
cout<<″c1+c2=″;( );
return 0;
}
c1. operator+ (c2)
使用运算符重载使程序易于编写、阅读和