support bazel complie this project and format code.
This commit is contained in:
13
practical_exercises/10_day_practice/day4/clock/BUILD
Normal file
13
practical_exercises/10_day_practice/day4/clock/BUILD
Normal file
@@ -0,0 +1,13 @@
|
||||
# please run `bazel run //practical_exercises/10_day_practice/day4/clock:operator`
|
||||
# please run `bazel run //practical_exercises/10_day_practice/day4/clock:operator_plus`
|
||||
|
||||
load("@rules_cc//cc:defs.bzl", "cc_binary")
|
||||
|
||||
cc_binary(
|
||||
name = "operator",
|
||||
srcs = ["operator.cpp"],
|
||||
)
|
||||
cc_binary(
|
||||
name = "operator_plus",
|
||||
srcs = ["operator_plus.cpp"],
|
||||
)
|
25
practical_exercises/10_day_practice/day4/clock/operator.cpp
Normal file
25
practical_exercises/10_day_practice/day4/clock/operator.cpp
Normal file
@@ -0,0 +1,25 @@
|
||||
/* 重载()的时钟.cpp */
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
class Time {
|
||||
private:
|
||||
int hh, mm, ss;
|
||||
|
||||
public:
|
||||
Time(int h = 0, int m = 0, int s = 0) : hh(h), mm(m), ss(s) {}
|
||||
void operator()(int h, int m, int s) {
|
||||
hh = h;
|
||||
mm = m;
|
||||
ss = s;
|
||||
}
|
||||
void ShowTime() { cout << hh << ":" << mm << ":" << ss << endl; }
|
||||
};
|
||||
int main() {
|
||||
Time t1(12, 10, 11);
|
||||
t1.ShowTime();
|
||||
t1.operator()(23, 20, 34);
|
||||
t1.ShowTime();
|
||||
t1(10, 10, 10);
|
||||
t1.ShowTime();
|
||||
|
||||
}
|
@@ -0,0 +1,52 @@
|
||||
/* 重载++的时钟.cpp */
|
||||
/*
|
||||
设计一个时钟类,能够记录时、分、秒,重载它的++运算符,每执行一次++运算,加时1秒,但要使计时过程能够自动进位。
|
||||
*/
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
class Time {
|
||||
public:
|
||||
Time(int h = 0, int m = 0, int s = 0) {
|
||||
hour = h;
|
||||
minute = m;
|
||||
second = s;
|
||||
}
|
||||
Time operator++();
|
||||
Time operator++(int);
|
||||
void showTime() {
|
||||
cout << "当前时间为:" << hour << ":" << minute << ":" << second << endl;
|
||||
}
|
||||
|
||||
private:
|
||||
int hour, minute, second;
|
||||
};
|
||||
Time Time::operator++(int n) {
|
||||
Time tmp = *this;
|
||||
++(*this);
|
||||
return tmp;
|
||||
}
|
||||
Time Time::operator++() {
|
||||
++second;
|
||||
if (second == 60) {
|
||||
second = 0;
|
||||
++minute;
|
||||
if (minute == 60) {
|
||||
minute = 0;
|
||||
hour++;
|
||||
if (hour == 24) {
|
||||
hour = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
int main(int argc, char const *argv[]) {
|
||||
Time t(23, 59, 59);
|
||||
++t;
|
||||
t.showTime();
|
||||
(t++).showTime();
|
||||
t.showTime();
|
||||
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user