/*
* 程序的版权和版本声明部分
* Copyright (c)2014, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: array.cpp
* 作 者: 刘江
* 完成日期:2013年4月22日
* 版本号: v1.0
* 输入描述:无
* 问题描述:运算符的重载,实现Time类中的运算符重载
*/
#include <iostream>
using namespace std;
class CTime
{
private:
unsigned short int hour; // 时
unsigned short int minute; // 分
unsigned short int second; // 秒
public:
CTime(int h=0,int m=0,int s=0):hour(h),minute(m),second(s) {}
void setTime(int h,int m,int s);
void display();
//一目运算符的重载
CTime operator++(int);//后置++,下一秒
CTime operator++();//前置++,下一秒,前置与后置返回值不一样
CTime operator--(int);//后置--,前一秒
CTime operator--();//前置--,前一秒
};
//下面实现所有的运算符重载代码。
void CTime::display()
{
cout<<hour<<":"<<minute<<":"<<second<<endl;
}
void CTime::setTime(int h,int m,int s)
{
hour=h;
minute=m;
second=s;
}
CTime CTime::operator++()
{
if(++second>=60)
{
second-=60;
++minute;
if(minute>=60)
{
minute-=60;
++hour;
if(hour>=24)
{
hour-=24;
}
}
}
return *this;
}
CTime CTime::operator--()
{
if(--second<0)
{
second+=60;
--minute;
if(minute<0)
{
minute+=60;
--hour;
}
}
return *this;
}
CTime CTime::operator++( int)
{
CTime temp(*this);
second++;
if(second>=60)
{
second-=60;
++minute;
if(minute>=60)
{
minute-=60;
++hour;
if(hour>=24)
{
hour-=24;
}
}
}
return temp;
}
CTime CTime::operator--( int)
{
CTime temp(*this);
second--;
if(second<0)
{
second+=60;
--minute;
if(minute<0)
{
minute+=60;
--hour;
}
}
return temp;
}
//自行编制用于测试的main()函数,有些结果不必依赖display()函数,提倡用单步执行查看结果
int main()
{
CTime t1(8,20,25),t;
cout<<"t1为:";
t1.display();
t=t1++;
cout<<"t=t1++= ";t.display();cout<<"t1= ";t1.display();
t=t1--;
cout<<"t=t1--= ";t.display();cout<<"t1= ";t1.display();
t=++t1;
cout<<"t=++t1= ";t.display();cout<<"t1= ";t1.display();
t=--t1;
cout<<"t=--t1= ";t.display();cout<<"t1= ";t1.display();
return 0;
}
运行结果;
心得体会;
现在就有点照着葫芦画瓢