操作符重载实例

#include <ctime>
#include <iostream>

using namespace std;

class stopWatch{
public:
	stopWatch();
	void setTime(int newMin, int newSec);
	stopWatch operator - (stopWatch&);
	void showTime();
private:
	int min;
	int sec;
};

stopWatch::stopWatch(){
	min = 0;
	sec = 0;
}

void stopWatch::setTime(int newMin, int newSec){
	min = newMin;
	sec = newSec;
}

stopWatch stopWatch::operator-(stopWatch& anotherTime){
	stopWatch tempTime;
	int second;

	second = min * 60 + sec - (anotherTime.min * 60 + anotherTime.sec);
	if (second < 0){
		second = -second;
	}

	tempTime.min = second / 60;
	tempTime.sec = second % 60;
}

void stopWatch::showTime(){
	if (min > 0){
		cout << min << "minutes" << sec << "seconds\n";
	}
	else{
		cout << sec << "seconds\n";
	}
}

int main(){
	stopWatch startTime, endTime, usedTime;
	cout << "按回车键开始!";
	cin.get();

	time_t curtime = time(0); //获取当前系统时间
	tm tim = *localtime(&curtime); //根据当前时间获取当地时间
	int min, sec;
	min = tim.tm_min; //得到当前时间的分
	sec = tim.tm_sec;// 得到当前时间的秒
	startTime.setTime(min, sec);

	cout << "按回车键结束";
	cin.get();

	curtime = time(0); //获取当前系统时间
	tim = *localtime(&curtime); //根据当前时间获取当地时间
	min = tim.tm_min; //得到当前时间的分
	sec = tim.tm_sec;// 得到当前时间的秒
	endTime.setTime(min, sec);

	usedTime = endTime - startTime;
	cout << "用时";
	usedTime.showTime();

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值