mirror of
https://github.com/Light-City/CPlusPlusThings.git
synced 2026-04-03 02:30:41 +08:00
support bazel complie this project and format code.
This commit is contained in:
85
practical_exercises/key_exercises/clock.cpp
Normal file
85
practical_exercises/key_exercises/clock.cpp
Normal file
@@ -0,0 +1,85 @@
|
||||
/* 时钟++运算符重载.cpp */
|
||||
#include <cmath>
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
/*
|
||||
* 时钟类
|
||||
*/
|
||||
class Clock {
|
||||
private:
|
||||
int Hour, Minute, Second;
|
||||
|
||||
public:
|
||||
Clock(int h = 0, int m = 0, int s = 0);
|
||||
void ShowTime();
|
||||
Clock &operator++();
|
||||
Clock operator++(int);
|
||||
};
|
||||
|
||||
/*
|
||||
* 时钟类构造函数
|
||||
*/
|
||||
Clock::Clock(int h, int m, int s) {
|
||||
if (h >= 0 && h < 24 && m >= 0 && m < 60 && s >= 0 && s < 60) {
|
||||
Hour = h;
|
||||
Minute = m;
|
||||
Second = s;
|
||||
} else
|
||||
cout << "输入的时间格式错误!" << endl;
|
||||
}
|
||||
|
||||
/*
|
||||
* 显示时间
|
||||
*/
|
||||
void Clock::ShowTime() {
|
||||
cout << Hour << ":" << Minute << ":" << Second << endl;
|
||||
}
|
||||
|
||||
/*
|
||||
* 时间递增一秒(重载前缀++运算符)
|
||||
*/
|
||||
Clock &Clock::operator++() {
|
||||
Second++;
|
||||
if (Second >= 60) {
|
||||
Second = Second - 60;
|
||||
Minute++;
|
||||
if (Minute >= 60) {
|
||||
Minute = Minute - 60;
|
||||
Hour++;
|
||||
Hour = Hour % 24;
|
||||
}
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
/*
|
||||
* 时间递增一秒(重载后缀++运算符)
|
||||
*/
|
||||
Clock Clock::operator++(int) {
|
||||
Clock old = *this;
|
||||
++(*this);
|
||||
return old;
|
||||
}
|
||||
|
||||
/*
|
||||
* 主函数
|
||||
*/
|
||||
int main() {
|
||||
Clock myClock(23, 59, 59);
|
||||
cout << "初始化显示时间为:\t\t";
|
||||
myClock.ShowTime();
|
||||
|
||||
cout << "执行myClock++后的时间为:\t";
|
||||
|
||||
//先执行ShowTime(),输出myClock=23:59:59,
|
||||
//再执行myClock++,此时myClock=00:00:00
|
||||
(myClock++).ShowTime();
|
||||
|
||||
cout << "执行++myClock后的时间为:\t";
|
||||
|
||||
//先执行++myClock,此时myClock=00:00:01
|
||||
//再执行ShowTime(),输出myClock=00:00:01
|
||||
(++myClock).ShowTime();
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user