第7章运算符重载7
1运算符重载概述7
2运算符重载函数作为类的友元函数和成员函数7
3前置运算符和后置运算符的重载7
4重载插入运算符和提取运算符7
5不同类型数据间的转换本章主要内容7
1运算符重载概述用于完成“+”、“-”、“*”、“\”等操作的函数为运算符函数
C++规定运算符函数名为:operator+operator-operator*operator\等统称为:operator@(@--要重载的运算符)运算符函数名两个或者两个以上的运算符函数共用一个运算符函数名为运算符函数重载
C++系统已经预先编好了将两个基本数据类型相加的的运算符函数,可以直接使用它们
求两个整数相加,例如:inti=2+3;2
求两个双精度数相加,例如:doubled=2
333;运算符函数重载调用预先编好的将两个整型数相加的的运算符函数调用预先编好的将两个双精度数相加的的运算符函数C++系统预先编好的运算符函数不能完成将两个对象的相加工作
例如:有一个复数类complex:classcomplex{public:doublereal,imag;complex(doubler=0,doublei=0){real=r;imag=i;}};实现两个对象相加的运算符函数若要把类complex的两个对象com1和com2加在一起:intmain(){complexcom1(1
2),com2(3
4);complextotal;total=com1+com2;//错误//…return0;}C++系统预先编好的运算符函数不能将两个对象的相加解决办法:用户自己编写一个实现两个对象相加的运算符函数,例如:intmain(){complexcom1(1
2),com2(3
4);complextotal;total=com1+com2;//…return