下载此文档

运算符重载.ppt


文档分类:IT计算机 | 页数:约59页 举报非法文档有奖
1/59
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/59 下载此文档
文档列表 文档介绍
运算符重载?绝大多数编程语言(如C、VB Java 等)的运算符只能操作基本类型的数据,而不能操作自定义类型的数据。?若希望运算符也能直接操作自定义类型的数据(如复数对象),如何实现? ?答:重载 C++ 的运算符。?运算符重载通过函数重载来实现,体现的是编译时的多态性,增强了 C++ 语言的可扩展性和自然理解性。 1 运算符重载?目的: 使运算符直接操作自定义类型的数据。#include< iostream >using namespace std; plex{ float real,image; public: Complex(float r=0,float i=0) { real=r;image=i; } Complex add(plex &c) { plex(real+,image+);} };int main( ) { Complex c1(,),c2(,),c3; c3=(c2) ;return 0; }; ?问:能否简写成 c3=c1+c2; ?答:运算符虽能直接操作基本数据类型的数据,但对于自定义类型的数据,若未重载有关运算符,则不能用这些运算符操作自定义类型的数据。概述?运算符重载通过定义运算符重载函数实现。?运算符重载函数可以定义为类的成员或友元,若访问权限许可,也可定义为普通函数。?只能重载已定义运算符,而且当重载一个运算符时, 该运算符的操作数个数、优先级和结合性保持不变。?绝大多数运算符允许重载, 仅有下列五个运算符不得重载: ?:、.、*、::和sizeof ?当遇到重载的运算符时,系统调用该运算符重载函数完成指定操作。重载二元运算符为类运算符?若某运算符重载函数被定义为类的成员,则称该运算符为该类的运算符,简称类运算符。?由于类运算符的第一操作数约定为当前对象(隐含),所以定义二元类运算符重载函数的一般格式为: type ClassName ::operator @ ( Arg ) { …} // 函数体?type :函数返回值类型?ClassName :运算符重载函数所在的类名?operator :关键字,与其后的运算符一起构成函数名,有区别于其他函数名。?@:一个重载的二元运算符?Arg :函数的形参表,即第二操作数。例定义复数类,重载"+" 运算符实现复数的加法运算。#include< iostream >using namespace std; plex{ //定义复数类 float Real,Image; // 复数的实部和虚部 public: Complex(float r=0,float i=0){ Real=r,Image=i; } float& AccessR ( ){ return Real; } float& AccessI ( ){ return Image; } void Show( ) // 显示复数,如: 1-2i { cout <<Real; if(Image>=0) cout <<" \t+"; else cout <<" \t"; cout <<Image<<"i \n"; }Complex operator+(Complex&); // 重载+:复数+plex operator+(float); // 重载+:复数+plex& operator+=(Complex&);// 重载+=:复数+=plex& operator=(Complex&); // 重载=:复数=复数}; plex::operator+(Complex&c) { Complex t; = Real //当前对象即第一操作数之实部+;// 第二操作数之实部 =Image+; return t; }plex::operator+(float s) { return Complex(Real+s,Image) ; } Complex& Complex::operator+=(Complex&c) { Real+=;Image+=; return *this; } & 为何不可? void 有何不足? ?plex& Complex::operator=(Complex&c) { Real=; Image=; return *this ;}int main(void) { Complex c1(25,50),c2,c3(100,200),c4(200,400)

运算符重载 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数59
  • 收藏数0 收藏
  • 顶次数0
  • 上传人825790901
  • 文件大小0 KB
  • 时间2016-04-30