人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第08章 运算符重载

第8章竭算等宜缴 8.1述 8.2运拿重的一, 8.3—些特殊作的重 人民邮电出版社 POSTS tEl OM PRE 动此映
第8章 运 算 符 重 载 8.1 概 述 8.2 运算符重载的一般规则 8.3 一些特殊操作符的重载

运算符重载就是给已有运算符赋予更多的 含义。通过重新定义运算符,使它能够用 于特定类的对象执行特定的功能。运算符 重载提供了重新定义语言、扩展语言的能 力,使程序更加容易阅读和调试。 人民邮电出版社 POSTS tEl OM PRE 动此映
运算符重载就是给已有运算符赋予更多的 含义。通过重新定义运算符,使它能够用 于特定类的对象执行特定的功能。运算符 重载提供了重新定义语言、扩展语言的能 力,使程序更加容易阅读和调试

81概述 运算符通常是针对类中的私有成员进行操 作,因此重载运算符应该能够访问类中的 私有成员,所以运算符重载一般采用成员 函数或友元函数的方式。运算符重载的过 程是将现有运算符与成员函数或友元函数 相关联,使得该运算符具有将该类的对象 用作其操作数的能力。 人民邮电出版社 POSTS tEl OM PRE 动此映
8.1 概 述 运算符通常是针对类中的私有成员进行操 作,因此重载运算符应该能够访问类中的 私有成员,所以运算符重载一般采用成员 函数或友元函数的方式。运算符重载的过 程是将现有运算符与成员函数或友元函数 相关联,使得该运算符具有将该类的对象 用作其操作数的能力

如: if(obj1<=obj2){…} 其中ob和ob为类的对象,对象的比较 运算可在成员函数中定义或在友元中定义, 并与比较运算符关联。编译器可以通过检 查运算符数据类型来区分重载的运算符, 运算符重载是多态性的一种形式,即运算 符多态性。 人民邮电出版社 POSTS tEl OM PRE 动此映
如: if (obj1<=obj2){ …… } 其中obj1和obj2为类的对象,对象的比较 运算可在成员函数中定义或在友元中定义, 并与比较运算符关联。编译器可以通过检 查运算符数据类型来区分重载的运算符, 运算符重载是多态性的一种形式,即运算 符多态性

82运算符重载的一般规则 运算符重载具有以下原则 (1)重载的运算符是C++中已经存在的运 算符,不能够主观创造。 (2)运算符重载不能改变运算符的语法结 构,即操作数的个数 人民邮电出版社 POSTS tEl OM PRE 动此映
8.2 运算符重载的一般规则 运算符重载具有以下原则: (1)重载的运算符是C++中已经存在的运 算符,不能够主观创造。 (2)运算符重载不能改变运算符的语法结 构,即操作数的个数

(3)运算符重载不能改变C++语言中已定 义的运算符的优先顺序和结合性。 (4)运算符重载一般不改变运算符功能。 (5)不能重载的运算符有: sizeof)运算符; 成员运算符();指向成员的指针运算符(*); 作用域运算符(:);条件运算符( 人民邮电出版社 POSTS tEl OM PRE 动此映
(3)运算符重载不能改变C++语言中已定 义的运算符的优先顺序和结合性。 (4)运算符重载一般不改变运算符功能。 (5)不能重载的运算符有:sizeof()运算符; 成员运算符(.);指向成员的指针运算符(*); 作用域运算符(::);条件运算符(?:)

8.3一些特殊操作符的重就 运算符重载函数是指含有实际的重载运算 符的函数,一般采用两种形式:重载为类 的成员函数形式和友元函数形式 人民邮电出版社 POSTS tEl OM PRE 动此映
8.3 一些特殊操作符的重载 运算符重载函数是指含有实际的重载运算 符的函数,一般采用两种形式:重载为类 的成员函数形式和友元函数形式

8.3.1一元运算符重载 8.3.1.1重载为类的成员函数 将运算符重载函数说明为类的成员函数的 格式如下: operator() 要重载的运算符必须置于关键字 operator之后 人民邮电出版社 POSTS tEl OM PRE 动此映
8.3.1 一元运算符重载 8.3.1.1 重载为类的成员函数 将运算符重载函数说明为类的成员函数的 格式如下: operator () 要重载的运算符必须置于关键字operator之后

【例8.1】重载运算符++ class point private int xcoord; int ycoord public: Point oixcoord =0; ycoord=0;3 void operator++R++xcoord; + ycoord; s 人民邮电出版社 POSTS tEl OM PRE 动此映
【例8.1】重载运算符++。 class Point { private: int xcoord; int ycoord; public: Point (){xcoord =0; ycoord =0;} void operator++(){ ++xcoord; ++ ycoord;} };

void maino Point objl obj1++; 使 chord、 ycoord 增加1 ++obil: ∥(使 chord、 accord 增加2 人民邮电出版社 POSTS tEl OM PRE 动此映
void main() { Point obj 1 ; obj 1++ ; // 使 xcoord 、ycoord 增加 1 ++obj 1 ; // 使 xcoord 、ycoord 增加 2 }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第07章 类与数据抽象.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第06章 指针和引用.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第05章 结构体和共用体.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第04章 数组.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第03章 函数.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第02章 C++程序设计基础.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第1章 C++概述.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第1章 分布式数据库系统概述(主讲:崔明义).ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第9章 分布式数据库与WWW数据库和移动数据库.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第8章 分布式数据库与客户机服务器模式.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第7章 分布式数据库的安全性与目录管理.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第6章 分布式数据库中的可靠性.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第5章 分布式数据库中的并发控制.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第4章 分布式数据库中的事务管理和恢复.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第3章 分布式数据库中的查询处理和优化.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第2章 分布式数据库系统的设计.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第11章 数据仓库和数据挖掘.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第10章 分布式数据库系统的发展趋势.ppt
- 《网络通信》Chapter 7 Data Link Control.ppt
- 《网络通信》Chapter 6 The Data Communications Interface.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第09章 继承性.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第10章 虚函数和多态性.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第11章 C++输入/输出流.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第12章 文件处理.ppt
- 上海理工大学:《电子商务基础与应用》课程教学资源(PPT课件)第四版 第六章 网络交易行为.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)目录.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第一章 绪论.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十章 群体数据的组织.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十一章 流类库与输入/输出.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十二章 异常处理.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十三章 MFC库与 Windows程序开发概述.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第二章 C艹十简单程序设计.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第三章 函数.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第四章 类与对象.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第五章 C艹程序的结构.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第六章 数组指针与字 符串.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 继承与派生.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第八章 多态性.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第九章 群体类.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第一章 ntel8086/8088的基本结构.ppt