chore: add 3.4.6.2
chore: add 3.4.6.3
chore: add 3.4.6.4
chore: add 3.4.6.5
chore: add 3.4.6.6
chore: add 3.4.6.7
chore: add 3.4.6.8
chore: add 3.4.6.9
chore: add 3.4.6.10
docs: add 3.6.5.1
This commit is contained in:
FallenYing
2023-07-27 23:15:47 +08:00
parent b9449a0d88
commit b043fd1d05
14 changed files with 535 additions and 89 deletions

View File

@@ -1,6 +1,6 @@
# 4.创建对象
<em>在我们继续之前,我</em><em>们</em><em>在这里使用的是</em><em>哲学意义上</em><em>的“对象”一词。它与</em><em>面向对象编程</em><em>无关,也与</em><em>Java</em><em></em><em>C#</em><em>和</em><em>Python</em><em>等编程语言中预定义的“对象”类型没有任何共同之处。下面,我将定义一个名为 object 的</em><em>结构体。</em>
<em>在我们继续之前,我</em><em>们</em><em>在这里使用的是</em><em>[哲学意义上](https://en.wikipedia.org/wiki/Object_(philosophy))</em><em>的“对象”一词。它与</em><em>[面向对象编程](https://en.wikipedia.org/wiki/Object-oriented_programming)</em><em>无关,也与</em><em>Java</em><em></em><em>C#</em><em>和</em><em>Python</em><em>等编程语言中预定义的“对象”类型没有任何共同之处。下面,我将定义一个名为 object 的</em><em>结构体。</em>
冒险游戏中的大多数谜题都围绕着<strong>物品</strong>。例子:
@@ -47,9 +47,11 @@ objs[] = {
我们发现 OBJECT 的结构体里面有一个指针和自己长得一样,不用担心,这和链表的操作类似。
思考题:链表是什么,为什么要有这么一个操作指针?
::: warning 🤔 思考题:
链表是什么,为什么要有这么一个操作指针?
链表和数组有什么异同点,他们分别在增删改查上有什么优劣?
:::
为了更容易地用那些所谓的物品或者是地点,我们将为每个元素定义一个名字
@@ -80,7 +82,8 @@ for (obj = objs; obj < objs + 5; obj++)
}
```
暂停理解一下吧
::: warning 🤔 暂停理解一下吧
:::
那么,我们有合并这个物品(或地点)列表有什么好处呢?答案是这会让我们的代码变得更加简单,因为许多函数(如上面的函数通过这样的列表)只需要扫描单个列表就可以实现,而不是三个列表。有人可能会说没必要,因为每个命令仅适用于一种类型的对象:
@@ -96,7 +99,8 @@ for (obj = objs; obj < objs + 5; obj++)
将所有对象放在一个大列表中很容易添加一个名为“type”的属性来<em>构造对象</em>,以帮助我们区分不同类型的对象。
怎么做怎么遍历呢?先思考吧
::: warning 🤔 怎么做怎么遍历呢?先思考吧
:::
但是,对象通常具有同样有效的其他特征:
@@ -169,7 +173,8 @@ OBJECT objs[] = {
extern OBJECT *getVisible(const char *intention, const char *noun);
```
## 指针?函数?希望你已经掌握这是什么了
::: warning <font size=5><strong>🤔 指针?函数?希望你已经掌握这是什么了</strong></font>
:::
## noun.c