support bazel complie this project and format code.

This commit is contained in:
zhangxing
2023-03-30 00:15:11 +08:00
committed by light-city
parent 1f86192576
commit 7529ae3a55
636 changed files with 10025 additions and 9387 deletions

View 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"],
)

View 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();
}

View File

@@ -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;
}