Skip to content

Commit 14f4163

Browse files
committed
fix compile fail
1 parent b61d8a8 commit 14f4163

File tree

3 files changed

+28
-12
lines changed

3 files changed

+28
-12
lines changed

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,19 @@ Typst 语言书写的 `.typ` 源文件编译后,得到可供阅读的 `.pdf`
5151
5252
# 前言
5353

54+
推荐用手机或平板**竖屏**观看,可以在床或沙发上躺着。
55+
56+
用电脑看的话,可以按 `WIN + ←`,把本书的浏览器窗口放在屏幕左侧,右侧是你的 IDE。一边看一边自己动手做实验。
57+
58+
![split view](pic/slide.jpg)
59+
60+
> 请坐和放宽。
61+
5462
## 观前须知
5563

5664
与大多数现有教材不同的是,本课程将会采用“倒叙”的形式,从最新的 **C++23** 讲起!然后讲 C++20、C++17、C++14、C++11,慢慢讲到最原始的 C++98。
5765

58-
不用担心,越是现代的 C++,学起来反而更容易!反而是古代 C++ 又臭又长。
66+
不用担心,越是现代的 C++,学起来反而更容易!反而古代 C++ **又臭又长**
5967

6068
很多同学想当然地误以为 C++98 最简单,哼哧哼哧费老大劲从 C++98 开始学,才是错误的。
6169

cppguidebook.typ

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,25 +46,31 @@
4646

4747
#fun[敢承诺:土木老哥也能看懂!]
4848

49-
= 指南
49+
= 前言
5050

51-
== 格式约定
51+
推荐用手机或平板*竖屏*观看,可以在床或沙发上躺着。
52+
53+
用电脑看的话,可以按 `WIN + ←`,把本书的浏览器窗口放在屏幕左侧,右侧是你的 IDE。一边看一边自己动手做实验。
5254

53-
这是一段*示例文字*
55+
#image("pic/slide.jpg")
56+
57+
#fun[请坐和放宽。]
58+
59+
== 格式约定
5460

5561
#tip[用这种颜色字体书写的内容是提示]
5662

5763
#warn[用这种颜色字体书写的内容是警告]
5864

5965
#fun[用这种颜色字体书写的内容是笑话或趣味寓言故事]
6066

61-
/ 术语名称: 这里是术语的定义
67+
/ 术语名称: 这里是术语的定义
6268

6369
== 观前须知
6470

6571
与大多数现有教材不同的是,本课程将会采用“倒叙”的形式,从最新的 *C++23* 讲起!然后讲 C++20、C++17、C++14、C++11,慢慢讲到最原始的 C++98。
6672

67-
不用担心,越是现代的 C++,学起来反而更容易!反而是古代 C++ 又臭又长。
73+
不用担心,越是现代的 C++,学起来反而更容易!反而古代 C++ *又臭又长*
6874

6975
很多同学想当然地误以为 C++98 最简单,哼哧哼哧费老大劲从 C++98 开始学,才是错误的。
7076

@@ -394,10 +400,12 @@ MSVC:`/Dmacro=value`
394400

395401
在 Linux 系统中,Clang 默认用的就是 libstdc++。需要为 Clang 指定 `-stdlib=libc++` 选项,才能使用。
396402

397-
#fun[牛头人笑话:“如果你不知道一个人是用的什么标准库,那么你可以猜他用的是 libstdc++。即使他的编译器是 Clang,他用的大概率依然是 libstdc++。”]
403+
#fun[牛头人笑话:“如果你不知道一个人是用的什么标准库,那么你可以猜他用的是 libstdc++。因为即使他的编译器是 Clang,他用的大概率依然是 libstdc++。”]
398404

399405
=== 标准库的调试模式
400406

407+
TODO
408+
401409
= 你好,世界
402410

403411
== 什么是函数
@@ -1047,7 +1055,7 @@ int main() {
10471055
}
10481056
```
10491057

1050-
#tip[这里声明为 auto 的参数 op,可以接受任意类型的对象传入(包括函数)
1058+
#tip[这里声明为 auto 的参数 op,可以接受任意类型的对象传入(包括函数)]
10511059

10521060
=== 我用了 C++20 的函数参数 auto 语法糖
10531061

@@ -1191,15 +1199,15 @@ int main() {
11911199

11921200
通常来说,软件应当追求低耦合度,适度解耦的软件能更快适应需求变化。但过度的低耦合也会导致代码过于分散,不易阅读和修改,甚至可能起到反效果。
11931201

1194-
若你解耦后,每次需求变化要改动的地方变少了,那就是合理的解耦。若你过分解耦,代码东一块西一块,以至于需求变化时需要到处改,比不解耦时浪费的时间还要多,那就是解耦过度。
1202+
#tip[若你解耦后,每次需求变化要改动的地方变少了,那就是合理的解耦。若你过分解耦,代码东一块西一块,以至于需求变化时需要到处改,比不解耦时浪费的时间还要多,那就是解耦过度。]
11951203

1196-
#fun[完全零耦合的程序每个函数互不联系,就像把蚯蚓拆散成一个个独立的细胞一样。连初始需求“活着”都实现不了,谈何适应需求变化?所以解耦也切勿矫枉过正。]
1204+
#tip[完全零耦合的程序每个函数互不联系,就像把蚯蚓拆散成一个个独立的细胞一样。连初始需求“活着”都实现不了,谈何适应需求变化?所以解耦也切勿矫枉过正。]
11971205

1198-
为了避免解耦矫枉过正,人们又提出了内聚的概念,并规定解耦不得耽误内聚
1206+
为了避免解耦矫枉过正,人们又提出了内聚的概念,并规定解耦合理的前提是:不耽误内聚
11991207

12001208
/ 内聚: 指的是同一个模块、类、函数内部各个元素之间的关联程度。内聚度越高,功能越独立,越易维护。
12011209

1202-
#fun[例如,人体的心脏专门负责泵血,肝脏只负责解毒,这就是高内聚的人体器官。若人的心脏还要兼职解毒,肝脏还兼职泵血,看似好像是增加了“万一心脏坏掉”的冗余性,实际上把“泵血”这一功能拆散到各地,无法“集中力量泵大血”了。]
1210+
#fun[例如,人的心脏专门负责泵血,肝脏只负责解毒,这就是高内聚的人体器官。若人的心脏还要兼职解毒,肝脏还兼职泵血,看似好像是增加了“万一心脏坏掉”的冗余性,实际上把“泵血”这一功能拆散到各地,无法“集中力量泵大血”了。]
12031211

12041212
好的软件要保持低耦合,同时高内聚。就像“民主集中制”一样,既要监督防止大权独揽滋生腐败,又要集中力量办一个人办不成的大事。
12051213

pic/slide.jpg

243 KB
Loading

0 commit comments

Comments
 (0)