2022年计算机二级考试C++复习资料:重载双目运算符.docx

上传人:博****1 文档编号:545122054 上传时间:2023-10-08 格式:DOCX 页数:7 大小:13.37KB
返回 下载 相关 举报
2022年计算机二级考试C++复习资料:重载双目运算符.docx_第1页
第1页 / 共7页
2022年计算机二级考试C++复习资料:重载双目运算符.docx_第2页
第2页 / 共7页
2022年计算机二级考试C++复习资料:重载双目运算符.docx_第3页
第3页 / 共7页
2022年计算机二级考试C++复习资料:重载双目运算符.docx_第4页
第4页 / 共7页
2022年计算机二级考试C++复习资料:重载双目运算符.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《2022年计算机二级考试C++复习资料:重载双目运算符.docx》由会员分享,可在线阅读,更多相关《2022年计算机二级考试C++复习资料:重载双目运算符.docx(7页珍藏版)》请在金锄头文库上搜索。

1、 2022年计算机二级考试C+复习资料:重载双目运算符一。作为类成员函数的重载为了能进展类对象和一个整型值的加法运算,需要写一个类的成员函数来重载双目加法(+)运算符。该函数在类中的声明如下: Date operator + (int) const;函数的声明指出,返回值是一个Date类对象,函数名是运算符+,只有一个整型参数,而且函数是常量型的。当编译器发觉某个函数以加上前缀operator的真实运算符作为函数名,就会把该函数当作重载运算符函数来处理。假如在表达式中,该运算符的左边是一个类对象,右边是一个参数类型的一个对象,那么重载运算符函数就会被调用。调用形式如下: Date dt(6,9

2、,2005); dt=dt+100;也可以显式的调用重载运算符函数: dt.operator + (100);下面代码重载了双目加法运算符来计算一个整数和一个Date类对象之和,并且返回Date类对象。 #include iostream.h class Date int mo,da,yr; static int dys; public: Date(int m=0,int d=0,int y=0) mo=m; da=d; yr=y; void display() const cout =dysdt.mo-1) n-=dysdt.mo-1; if(+dt.da=13) dt.mo=1; dt,y

3、r+; dt.da=n; return dt; int main() Date olddate(1,1,2005); Date newdate; newdate=olddate+100; newdate.display(); return 0; 二。非类成员的运算符重载在重载运算符的原则中说到,要保持运算符的可交换性。而上面的程序只允许Date类对象在运算符的左边而整型值在右边,不支持下面的语句: Date newdate=100+olddate;所以,仅仅靠一个类的成员重载运算符是无法实现上面功能的。对重载双目运算符的类成员函数来说,总是认定调用函数的对象位于运算符左边。不过,我们可以再写一

4、个非类成员的重载运算符函数,可以规定Date类的对象在运算符右边,而别的类型在运算符左边。例如,我们可以这样在类的外部定义一个函数: Date operator + (int n,Date static int dys; public: Date(int m=0,int d=0,int y=0) mo=m; da=d; yr=y; void display() const cout =dysdt.mo-1) n-=dysdt.mo-1; if(+dt.da=13) dt.mo=1; dt,yr+; dt.da=n; return dt; Date operator + (int n,Date

5、int main() Date olddate(1,1,2005); Date newdate; newdate=olddate+100; newdate.display(); return 0; 上面的例子中非类成员重载运算符函数调用了类中的重载+运算符来实现加法运算。假如类当中没有供应这样的函数,那么非类成员的重载运算符函数将被迫访问类的私有数据来实现加法运算。这样的话,需要把这个函数声明为类的友元,如下: class Date friend Date operator + (int n,Date ;上例中重载运算符函数声明白全部两个参数,这是由于它不是类的成员,因此它不能作为类的成员函数

6、被调用,就缺少了一个隐含的参数。第一个重载加法运算符函数也可以用类的友元函数来实现。作为一种商定,这通常把全部为类重载的运算符都设定为该类的友元。例子中只给出了重载加法的代码,我们同样可以来重载减法,乘除法等等。 三。重载关系运算符假如想要对两个日期进展比拟,比方消失下面这样的代码: if(olddate 可以向上面用类似的方法重载关系运算符 #include iostream.h class Date int mo,da,yr; public: Date(int m=0,int d=0,int y=0) mo=m; da=d; yr=y; void display() const cout mo yr =dysdt.mo-1) n-=dysdt.mo-1; if(+dt.da=13) dt.mo=1; dt,yr+; dt.da=n; return dt; int main() Date olddate(1,1,2005); olddate+=100; olddate.display(); return 0;

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

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

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