【C++】6-2 时钟模拟 (30 分)

一个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;
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值