一、代碼框架

二、運行終端顯示

三、代碼詳細注釋
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;}}}
}