- // operatorrOverlode.cpp
- /*练习使用操作符的重载特性
- 有+,<<的重载*/
- #include <iostream>
- using namespace std;
- class Time;
- ostream & operator<< (ostream &os,const Time &T);//友元函数须全局申明!!
- class Time{
- private:
- int hour;
- int minute;
- public:
- Time();//构造0hours,0minutes
- Time(int h, int m);//构造用户要求的时间
- void addHour(int h);//加小时
- void addMin(int m);//加分钟
- void reSet(int h, int m);//重置
- Time operator+ (Time &T);//两个Time对象相加,重载
- friend ostream & operator<< (ostream &os,const Time &T);
- };
- Time::Time(){
- hour = 0;
- minute = 0;
- }//构造0hours,0minutes
- Time::Time(int h, int m){
- hour = h;
- minute = m;
- }//构造用户要求的时间
- void Time::addHour(int h){
- hour += h;
- }//加小时
- void Time::addMin(int m){
- minute += m;
- hour += minute / 60;
- minute %= 60;
- }//加分钟
- void Time::reSet(int h, int m){
- hour = h;
- minute = m;
- }//重置
- Time Time::operator+ (Time &T){
- Time sum;
- sum.minute = T.minute + minute;
- sum.hour = T.hour + hour + sum.minute / 60;
- sum.minute %= 60;
- return sum;
- }//两个Time对象相加,重载
- ostream & operator<< (ostream &os,const Time &T){
- os << T.hour << " hours," << T.minute << " minutes.";
- return os;
- }
- void main()
- {
- Time planning;
- Time coding(2,40);
- Time fixing(5,55);
- Time total;
- cout << "Planning time = " << planning << endl;
- cout << "Coding time = " << coding << endl;
- cout << "Fixing time = " << fixing << endl;
- total = coding + fixing;
- cout << "Coding + Fixing = " << total << endl;
- cout << "Reset the time .../nCoding hours add 3,minute add 40" << endl;
- coding.addHour(3);
- coding.addMin(40);
- cout << "Coding time = " << coding << endl;
- cout << "Reser the time.../nFixing hours set4,minute ser 38" << endl;
- fixing.reSet(4,38);
- cout << "Fixing time = " << fixing << endl;
- cout << "Coding + Fixing = " << coding + fixing << endl;
- }
- Planning time = 0 hours,0 minutes.
- Coding time = 2 hours,40 minutes.
- Fixing time = 5 hours,55 minutes.
- Coding + Fixing = 8 hours,35 minutes.
- Reset the time ...
- Coding hours add 3,minute add 40
- Coding time = 6 hours,20 minutes.
- Reser the time...
- Fixing hours set4,minute ser 38
- Fixing time = 4 hours,38 minutes.
- Coding + Fixing = 10 hours,58 minutes.
- Press any key to continue
本文通过一个C++程序实例介绍了操作符重载的基本用法,包括加法操作符+和插入操作符<<的重载实现。通过定义Time类来演示如何使自定义类型能够使用这些操作符。

被折叠的 条评论
为什么被折叠?



