C++:Timer类实现
《C++菜鸟进化论》
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
class Timer
{
private:
int minute;
int second;
public:
Timer(int m = 0,int s = 0);
Timer(const Timer &t);
int get_minute() const;
int get_second() const;
Timer& operator++();
Timer operator++(int);
friend Timer operator - (const Timer &lhs,const Timer &rhs);
friend void write(const Timer &t, ofstream &os);
friend ostream& operator<<(ostream& os, const Timer &t);
};
Timer::Timer(int m, int s) :
minute((m >= 0 && m <= 59) ? m : 0),
second((s >= 0 && m <= 59) ? s : 0)
{
}
Timer::Timer(const Timer &t) : minute(t.minute), second(t.second)
{
}
int Timer::get_minute() const
{
return minute;
}
int Timer::get_second() const
{
return second;
}
//前自增运算符++重载。注意:先增加秒 second 值,如果超过 59,秒值清零,分钟加 1;
//如果分 钟值超过 59,分钟值清零
Timer& Timer::operator++()
{
++second;
if (second > 59)
{
second = 0;
++minute;
}
if (minute > 59)
{
minute = 0;
}
return *this;
}
Timer Timer::operator++(int)
{
Timer oldTimer(*this);
++(*this);
return oldTimer;
}
//重载减法运算符-,实现两个 Timer 相减,得到它们的时间差,时间差也是一个 Timer 对象
Timer operator-(const Timer &lhs, const Timer &rhs)
{
int s = lhs.minute * 60 + lhs.second;
int t = rhs.minute * 60 + rhs.second;
int diff = abs(s - t); //绝对值操作abs()函数
return Timer(diff / 60, diff % 60);
}
//写一个友元函数 write(Timer &c, ofstream &os),将一个计时器对象写入到一个文件中
//包括计时器的分钟和秒值,中间用“:”隔开。一个计时器的信息占 1 行。
void write(const Timer &t, ofstream &os)
{
os << t.minute << ":" << t.second << endl;
}
//流输出运算,用于显示计时器的分钟和秒值,中间用“:”隔开。一个计时器的信息占 1 行。
ostream& operator<<(ostream& os, const Timer &t)
{
os << t.minute << ":" << t.second << endl;
return os;
}
int main()
{
ofstream os("Timer.txt");
Timer t1, t2(20, 59), t3(t2);
cout<<t1 << t2 << t3;
Timer* t4 = new Timer(2, 49);
cout << t4->get_minute() << t4->get_second() << endl;
delete t4;
++t1;
cout << ++t1;
t3++;
cout << t3++;
Timer t5 = t1 - t3;
cout << t5;
write(t1, os);
write(t2, os);
write(t3, os);
write(t5, os);
os.close();
system("pause");
return 0;
}
C++:Timer类实现相关推荐
- 63、使用Timer类来实现定时任务
定时任务 定时任务就是让计算机自动的每隔一段时间执行的代码. 比如要实现这样的一个功能: 让计算机每隔5秒钟,在控制台打印一个www.monkey1024.com 可以使用java.util包下的Ti ...
- 关于C#中timer类 在C#里关于定时器类就有3个
·关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类里 3.定义在Sys ...
- System.Threading.Timer类的TimerCallback 委托
System.Threading.Timer类的TimerCallback 委托 Written by: Rickie Lee Nov. 19, 2004 System.Threading.Timer ...
- [ImportNew]Java中的Timer类和TimerTask类
http://www.importnew.com/9978.html java.util.Timer是一个实用工具类,该类用来调度一个线程,使它可以在将来某一时刻执行. Java的Timer类可以调度 ...
- C#中timer类的用法
C#中timer类的用法 关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类 ...
- java中timer类包_Java~util包中Timer的使用, 演示cancel方法 和 对比schedule和scheduleAtFixedRate方法...
Timer Timer类的主要作用就是设置计划任务,但封装任务的类却是TimerTask类 执行计划任务的代码要放人TimerTask的子类中,因为TimerTask是一个抽象类.而且要重写其run方 ...
- 使用System.Timers.Timer类实现程序定时执行
在C#里关于定时器类有3个:System.Windows.Forms.Timer类.System.Threading.Timer类和System.Timers.Timer类. System.Windo ...
- Timer类 和 TimerTask类。一种有用计时器工具。可以每隔相同时间去执行某任务一次。
1,编写一个类 继承TimerTask类 public class MyTimerTask extends TimerTask {@Overridepublic void run() {System. ...
- 关于C#中timer类
关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类里 /?" ...
- JDK自带的Timer类
Timer类负责设定TimerTask的起始和间隔执行时间.具体的执行任务,由用户创建一个TimerTask的继承类,并实现其run()方法 timer.schedule() 转载于:https:// ...
最新文章
- [python教程入门学习]Python标准库映射类型与可散列数据类型的关系
- mysql 让别人连接我的数据库
- flask-blueprint的简单使用
- 设计模式总结 (3)创建内存型模式
- WPF——自动关闭无模式窗口
- Wannafly挑战赛27: C. 蓝魔法师(树形DP)
- 微信小程序分享至朋友圈功能
- java-redis java使用redisTemplate连接操作单台Redis
- 浅析企业应收账款保理融资
- Ubuntu20.04英文系统无法安装中文智能拼音输入法
- 2021年,手机拼什么?
- iOS的常用运算函数
- jquery给id加css,JQuery为元素添加样式
- Legacy octal literals are not allowed in strict mode 严格模式下禁止使用 八进制
- 一区希尔盖服务器找不到,怀旧服克罗米服务器关闭转入 龙牙即将满载
- C# + Ext.Net打印
- java如何连接Sublime_第一节:使用Sublime 搭建Java学习环境
- [附源码]计算机毕业设计springboot海滨学院学生大创项目申报与审批系统
- 华秋亮相汽车电子研讨会,展出智能座舱方案、高可靠PCB板
- 云计算机上存储的文件能删除吗,如何删除wps云文档文件 本地电脑如何关闭wps云文档-♚付涛纪实阁♚...