程序运行结果如下:
*****************************************
now the time is :
Hour: 22 Minute:57
test prefix ++:
Hour: 22 Minute:58
Hour: 22 Minute:59
Hour: 23 Minute:0
Hour: 23 Minute:1
Hour: 23 Minute:2
Hour: 23 Minute:3
*****************************************
now the time is :
Hour: 23 Minute:3
test prefix --:
Hour: 23 Minute:2
Hour: 23 Minute:1
Hour: 23 Minute:0
Hour: 22 Minute:59
Hour: 22 Minute:58
Hour: 22 Minute:57
*****************************************
now the time is :
Hour: 22 Minute:57
test postfix ++:
Hour: 22 Minute:58
Hour: 22 Minute:59
Hour: 23 Minute:0
Hour: 23 Minute:1
Hour: 23 Minute:2
Hour: 23 Minute:3
*****************************************
now the time is :
Hour: 23 Minute:3
test postfix --:
Hour: 23 Minute:2
Hour: 23 Minute:1
Hour: 23 Minute:0
Hour: 22 Minute:59
Hour: 22 Minute:58
Hour: 22 Minute:57
#include <iostream>
using namespace std;
class Time
{
private:
int hours; // 0 to 23
int minutes; // 0 to 59
public:
// required constructors
Time()
{
hours = 0;
minutes = 0;
}
Time(int h, int m)
{
hours = h;
minutes = m;
}
// method to display time
void displayTime()
{
cout << "Hour: " << hours << " Minute:" << minutes <<endl;
}
// overloaded prefix ++ operator
Time operator++ ()
{
++minutes; // increment this object
if(minutes >= 60)
{
++hours;
minutes -= 60;
}
return Time(hours, minutes);
}
// overloaded prefix -- operator
Time operator -- ()
{
// increment this object
if(minutes==0)
{
--hours;
minutes=60;
}
--minutes;
return Time(hours, minutes);
}
// overloaded postfix ++ operator
Time operator++( int )
{
// save the orignal value
Time T(hours, minutes);
// increment this object
++minutes;
if(minutes >= 60)
{
++hours;
minutes -= 60;
}
// return old original value
return T;
}
// overloaded postfix -- operator
Time operator -- (int)
{
Time T(hours, minutes);
if(minutes==0)
{
--hours;
minutes=60;
}
--minutes;
return Time(hours, minutes);
}
};
void test()
{
Time T(22,57);
cout<<"*****************************************\n";
cout<<"now the time is :\n";
T.displayTime();
cout<<"test prefix ++:\n";
for(int i=0;i<6;i++)
{
++T;
T.displayTime();
}
cout<<"*****************************************\n";
cout<<"now the time is :\n";
T.displayTime();
cout<<"test prefix --:\n";
for(int i=0;i<6;i++)
{
--T;
T.displayTime();
}
cout<<"*****************************************\n";
cout<<"now the time is :\n";
T.displayTime();
cout<<"test postfix ++:\n";
for(int i=0;i<6;i++)
{
T++;
T.displayTime();
}
cout<<"*****************************************\n";
cout<<"now the time is :\n";
T.displayTime();
cout<<"test postfix --:\n";
for(int i=0;i<6;i++)
{
T--;
T.displayTime();
}
}
int main()
{
test();
return 0;
}
/*****************************************
运行结果:
*****************************************
now the time is :
Hour: 22 Minute:57
test prefix ++:
Hour: 22 Minute:58
Hour: 22 Minute:59
Hour: 23 Minute:0
Hour: 23 Minute:1
Hour: 23 Minute:2
Hour: 23 Minute:3
*****************************************
now the time is :
Hour: 23 Minute:3
test prefix --:
Hour: 23 Minute:2
Hour: 23 Minute:1
Hour: 23 Minute:0
Hour: 22 Minute:59
Hour: 22 Minute:58
Hour: 22 Minute:57
*****************************************
now the time is :
Hour: 22 Minute:57
test postfix ++:
Hour: 22 Minute:58
Hour: 22 Minute:59
Hour: 23 Minute:0
Hour: 23 Minute:1
Hour: 23 Minute:2
Hour: 23 Minute:3
*****************************************
now the time is :
Hour: 23 Minute:3
test postfix --:
Hour: 23 Minute:2
Hour: 23 Minute:1
Hour: 23 Minute:0
Hour: 22 Minute:59
Hour: 22 Minute:58
Hour: 22 Minute:57
Process returned 0 (0x0) execution time : 0.136 s
Press any key to continue.
******************************************/