一个Time类,数据成员有时、分、秒。要求模拟秒表,每次走一秒,满60秒进位,秒又从零开始计数。满60分进位,分又从零开始计数。输出时、分和秒的值。(使用重载++运算符实现)
时间类定义
class MyTime
测试程序样例
/* 请在这里填写答案 */
int main()
{
MyTime t1,t2(23,59,59),t3;
cin>>t3;
++t1;
cout<<t1<<endl;
++t2;
cout<<t2<<endl;
++t3;
cout<<t3<<endl;
return 0;
}
输入样例
12 35 59
输出样例
0:0:1
0:0:0
12:36:0
本题主要是重载运算符的实现
然后代码里有两个概念提前了解了下
C++重载istream和ostream
关于C++ return * this的理解
代码:
MyTime类
class MyTime
{
int hour, minute, second;
public:
MyTime(int h = 0, int m = 0, int s = 0) :hour(h), minute(m), second(s) {};
MyTime operator ++();
friend istream& operator>> (istream&, MyTime&);
friend ostream& operator<< (ostream&, MyTime&);
};
运算符++重载
MyTime MyTime::operator++()
{
second++;
if (second == 60) { minute++; second = 0; }
if (minute == 60) { hour++; minute = 0; }
hour %= 24;
return* this;
}
符号 >>
<<
的重载
istream& operator>>(istream& in, MyTime& t)
{
in >> t.hour >> t.minute >> t.second;
return in;
}
ostream& operator<<(ostream& out, MyTime& t)
{
out << t.hour << ":" << t.minute << ":" << t.second;
return out;
}