一、代码框架

二、运行终端显示

三、代码详细注释
test.pro
# 指定项目类型为应用程序(而非库或其他类型)
TEMPLATE = app# 配置项目:启用控制台输出,使用C++11标准
CONFIG += console c++11# 移除配置:不生成应用程序捆绑包(主要用于macOS等平台)
CONFIG -= app_bundle# 移除配置:不使用Qt框架
CONFIG -= qt# 源文件列表:列出项目中所有的.cpp源文件
SOURCES += \main.cpp \mytime.cpp# 头文件列表:列出项目中所有的.h头文件
HEADERS += \mytime.h
mytime.h
#ifndef MY_TIME_H
#define MY_TIME_H
// 时间类
class Time {
public:
// 构造函数
Time (int h=23,int m=59,int s=55);
// 接口 --- 成员函数
// 设置和获取小时的接口
void set_hour (int h);
int get_hour ();
// 设置时间
void set_time (int h=23,int m=59,int s=55);
// 打印时间
void print_time ();
// 时间运行(流逝)
void run ();
private:// 私有成员
// 数据 --- 成员变量
int hour;// 时
int min;// 分
int sec;// 秒
};
#endif // MY_TIME_H
main.cpp
//#include <iostream>
//#include "mytime.h"//using namespace std;//int main()
//{
// Time t;// return 0;
//}#include <iostream>
#include "mytime.h"
#include <unistd.h> // Linux/Unix系统休眠函数头文件
// #include <windows.h> // Windows系统需替换为该头文件using namespace std;int main()
{Time t; // 创建Time对象,默认初始时间23:59:55// 无限循环,持续更新并显示时间while (true) {t.print_time(); // 显示当前时间(格式HH:MM:SS)t.run(); // 时间递增1秒sleep(1); // 休眠1秒(Linux/Unix)// Sleep(1000); // Windows系统使用该语句,单位为毫秒cout.flush(); // 强制刷新输出,确保时间实时显示}return 0;
}
mytime.cpp
#include "mytime.h"
#include <iostream>
#include <unistd.h>
#include <iomanip>using namespace std;// 构造函数实现,初始化时、分、秒
Time::Time(int h, int m, int s) : hour(h), min(m), sec(s)
{
}// 设置小时
void Time::set_hour(int h)
{hour = h;
}// 获取小时
int Time::get_hour()
{return hour;
}// 设置时间(时、分、秒)
void Time::set_time(int h, int m, int s)
{hour = h;min = m;sec = s;
}// 打印时间,格式为 HH:MM:SS,不足两位的数字前补0
void Time::print_time()
{std::cout << setw(2) << setfill('0') << hour << ":"<< setw(2) << setfill('0') << min << ":"<< setw(2) << setfill('0') << sec << "\r";
}// 时间运行(每秒递增1秒,并处理进位逻辑)
void Time::run()
{sec++;if (sec == 60) { // 秒满60进1分钟sec = 0;min++;if (min == 60) { // 分钟满60进1小时min = 0;hour++;if (hour == 24) { // 小时满24重置为0hour = 0;}}}
}