C++课件1-10章6-运算符重载

上传人:E**** 文档编号:90579060 上传时间:2019-06-13 格式:PPT 页数:141 大小:1.27MB
返回 下载 相关 举报
C++课件1-10章6-运算符重载_第1页
第1页 / 共141页
C++课件1-10章6-运算符重载_第2页
第2页 / 共141页
C++课件1-10章6-运算符重载_第3页
第3页 / 共141页
C++课件1-10章6-运算符重载_第4页
第4页 / 共141页
C++课件1-10章6-运算符重载_第5页
第5页 / 共141页
点击查看更多>>
资源描述

《C++课件1-10章6-运算符重载》由会员分享,可在线阅读,更多相关《C++课件1-10章6-运算符重载(141页珍藏版)》请在金锄头文库上搜索。

1、第6章 运算符重载,6.1 运算符重载规则,6.2 用成员或友员函数重载运算符,6.3 几个典型运算符重载,6.4 类类型转换,小结,运算符重载使得用户自定义的数据以一种更简洁的方式工作,例如 int x , y ; y = x + y ;,matrix m1 , m2 ; / 矩阵类对象 m1 = Madd ( m1 , m2 ) ; / 调用函数计算两个矩阵的和,complex c1 , c2 ; / 复数类对象 c1 = Cadd (c1 , c2 ) ; / 调用函数计算两个复数的和,能表示为 c1 = c1 + c2 ; ?,能表示为 m1 = m1 + m2 ; ?,第6章 运算符

2、重载,定义 运算符重载函数,6.1 运算符重载规则,6.1.1 重载运算符的限制,可以重载的运算符 + - * / % & | ! = += -= *= /= % = &= |= = = & | + - -* - () new delete new delete,不能重载的算符 . : .* ?: sizeof,6.1 运算符重载规则,6.1.1 重载运算符的限制,重载运算符函数可以对运算符作出新的解释,但原有基本语义不变: 不改变运算符的优先级 不改变运算符的结合性 不改变运算符所需要的操作数 不能创建新的运算符,6.1.2 运算符重载的语法形式,运算符函数是一种特殊的成员函数或友员函数 成

3、员函数的语法形式为: 类型 类名 : operator op ( 参数表 ) / 相对于该类定义的操作 ,运算符函数是一种特殊的成员函数或友员函数 成员函数的语法形式为: 类型 类名 : operator op ( 参数表 ) / 相对于该类定义的操作 ,6.1.2 运算符重载的语法形式,函数返回类型,运算符函数是一种特殊的成员函数或友员函数 成员函数的语法形式为: 类型 类名 : operator op ( 参数表 ) / 相对于该类定义的操作 ,6.1.2 运算符重载的语法形式,重载该运算符的类,6.1.2 运算符重载的语法形式,运算符函数是一种特殊的成员函数或友员函数 成员函数的语法形式

4、为: 类型 类名 : operator op ( 参数表 ) / 相对于该类定义的操作 ,被重载的运算符,6.1.2 运算符重载的语法形式,关键字,运算符函数是一种特殊的成员函数或友员函数 成员函数的语法形式为: 类型 类名 : operator op ( 参数表 ) / 相对于该类定义的操作 ,6.1.2 运算符重载的语法形式,函数名,运算符函数是一种特殊的成员函数或友员函数 成员函数的语法形式为: 类型 类名 : operator op ( 参数表 ) / 相对于该类定义的操作 ,运算符函数是一种特殊的成员函数或友员函数 成员函数的语法形式为: 类型 类名 : operator op (

5、参数表 ) / 相对于该类定义的操作 ,6.1.2 运算符重载的语法形式,运算符要求的操作数,6.1.2 运算符重载的语法形式,一个运算符被重载后,原有意义没有失去,只是定义了相对一特定类的一个新运算符,运算符函数是一种特殊的成员函数或友员函数 成员函数的语法形式为: 类型 类名 : operator op ( 参数表 ) / 相对于该类定义的操作 ,#include #include class Calculator public: Calculator() value = 0 ; ; void operator + () ; void operator - () ; unsigned in

6、t operator() () ; private: unsigned int value; ; void main() Calculator Counter ; int i ; for( i = 0 ; i 5 ; i + ) + Counter; cout “n Counter = “ Counter() ; for( i = 0 ; i = 5 ; i + ) - Counter; cout “n Counter = “ Counter() ; ,void Calculator:operator + () if ( value 0 ) value - ; else cout “n Dat

7、a overflow !“ endl ; abort() ; unsigned int Calculator:operator() () return value ; ,例6-1 设计一个安全计数器,6.1.2 运算符重载的语法形式,#include #include class Calculator public: Calculator() value = 0 ; ; void operator + () ; void operator - () ; unsigned int operator() () ; private: unsigned int value; ; void main()

8、 Calculator Counter ; int i ; for( i = 0 ; i 5 ; i + ) + Counter; cout “n Counter = “ Counter() ; for( i = 0 ; i = 5 ; i + ) - Counter; cout “n Counter = “ Counter() ; ,void Calculator:operator + () if ( value 0 ) value - ; else cout “n Data overflow !“ endl ; abort() ; unsigned int Calculator:opera

9、tor() () return value ; ,重载了 3个算符,6.1.2 运算符重载的语法形式,例6-1 设计一个安全计数器,#include #include class Calculator public: Calculator() value = 0 ; ; void operator + () ; void operator - () ; unsigned int operator() () ; private: unsigned int value; ; void main() Calculator Counter ; int i ; for( i = 0 ; i 5 ; i

10、+ ) + Counter; cout “n Counter = “ Counter() ; for( i = 0 ; i = 5 ; i + ) - Counter; cout “n Counter = “ Counter() ; ,void Calculator:operator + () if ( value 0 ) value - ; else cout “n Data overflow !“ endl ; abort() ; unsigned int Calculator:operator() () return value ; ,重载了 3个算符,6.1.2 运算符重载的语法形式,

11、例6-1 设计一个安全计数器,#include #include class Calculator public: Calculator() value = 0 ; ; void operator + () ; void operator - () ; unsigned int operator() () ; private: unsigned int value; ; void main() Calculator Counter ; int i ; for( i = 0 ; i 5 ; i + ) + Counter; cout “n Counter = “ Counter() ; for(

12、 i = 0 ; i = 5 ; i + ) - Counter; cout “n Counter = “ Counter() ; ,void Calculator:operator + () if ( value 0 ) value - ; else cout “n Data overflow !“ endl ; abort() ; unsigned int Calculator:operator() () return value ; ,void Calculator : operator + () if ( value 65535 ) value + ; else cout “nData

13、 overflow !“ endl ; abort() ; ,6.1.2 运算符重载的语法形式,例6-1 设计一个安全计数器,#include #include class Calculator public: Calculator() value = 0 ; ; void operator + () ; void operator - () ; unsigned int operator() () ; private: unsigned int value; ; void main() Calculator Counter ; int i ; for( i = 0 ; i 5 ; i + )

14、 + Counter; cout “n Counter = “ Counter() ; for( i = 0 ; i = 5 ; i + ) - Counter; cout “n Counter = “ Counter() ; ,void Calculator:operator + () if ( value 0 ) value - ; else cout “n Data overflow !“ endl ; abort() ; unsigned int Calculator:operator() () return value ; ,void Calculator : operator +

15、() if ( value 65535 ) value + ; else cout “nData overflow !“ endl ; abort() ; ,使用 系统预定义版本,6.1.2 运算符重载的语法形式,例6-1 设计一个安全计数器,#include #include class Calculator public: Calculator() value = 0 ; ; void operator + () ; void operator - () ; unsigned int operator() () ; private: unsigned int value; ; void main() Calculator Counter ; int i ; for( i = 0 ; i 5 ; i + ) + Counter; cout “n Counter = “ Counter() ; for( i = 0 ; i = 5 ; i + ) - Counter; cout “n Counter = “ Counter()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号