diff --git a/source/chapter2/09_Structures_And_Classes.md b/source/chapter2/09_Structures_And_Classes.md
index f6ce6e88..a4a972f8 100755
--- a/source/chapter2/09_Structures_And_Classes.md
+++ b/source/chapter2/09_Structures_And_Classes.md
@@ -20,7 +20,7 @@ Swift 中结构体和类有很多共同点。两者都可以:
* 通过扩展以增加默认实现之外的功能
* 遵循协议以提供某种标准功能
-更多信息请参见 [属性](./{1}md{2})、[方法](./{1}md{2})、[下标](./{1}md{2})、[构造过程](./{1}md{2})、[扩展](./{1}md{2}) 和 [协议](./{1}md{2})。
+更多信息请参见 [属性](./10_Properties.md)、[方法](./11_Methods.md)、[下标](./12_Subscripts.md)、[构造过程](./14_Initialization.md)、[扩展](./20_Extensions.md) 和 [协议](./21_Protocols.md)。
与结构体相比,类还有如下的附加功能:
@@ -29,7 +29,7 @@ Swift 中结构体和类有很多共同点。两者都可以:
* 析构器允许一个类实例释放任何其所被分配的资源
* 引用计数允许对一个类的多次引用
-更多信息请参见 [继承](./{1}md{2})、[类型转换](./{1}md{2})、[析构过程](./{1}md{2}) 和 [自动引用计数](./{1}md{2})。
+更多信息请参见 [继承](./13_Inheritance.md)、[类型转换](./18_Type_Casting.md)、[析构过程](./15_Deinitialization.md) 和 [自动引用计数](./23_Automatic_Reference_Counting.md)。
类支持的附加功能是以增加复杂性为代价的。作为一般准则,优先使用结构体,因为它们更容易理解,仅在适当或必要时才使用类。实际上,这意味着你的大多数自定义数据类型都会是结构体和枚举。更多详细的比较参见 [在结构和类之间进行选择](https://developer.apple.com/documentation/swift/choosing_between_structures_and_classes)。
@@ -82,7 +82,7 @@ let someResolution = Resolution()
let someVideoMode = VideoMode()
```
-结构体和类都使用构造器语法来创建新的实例。构造器语法的最简单形式是在结构体或者类的类型名称后跟随一对空括号,如 `Resolution()` 或 `VideoMode()`。通过这种方式所创建的类或者结构体实例,其属性均会被初始化为默认值。[构造过程](./{1}md{2}) 章节会对类和结构体的初始化进行更详细的讨论。
+结构体和类都使用构造器语法来创建新的实例。构造器语法的最简单形式是在结构体或者类的类型名称后跟随一对空括号,如 `Resolution()` 或 `VideoMode()`。通过这种方式所创建的类或者结构体实例,其属性均会被初始化为默认值。[构造过程](./14_Initialization.md) 章节会对类和结构体的初始化进行更详细的讨论。
### 属性访问
@@ -120,7 +120,7 @@ print("The width of someVideoMode is now \(someVideoMode.resolution.width)")
let vga = Resolution(width: 640, height: 480)
```
-与结构体不同,类实例没有默认的成员逐一构造器。[构造过程](./{1}md{2}) 章节会对构造器进行更详细的讨论。
+与结构体不同,类实例没有默认的成员逐一构造器。[构造过程](./14_Initialization.md) 章节会对构造器进行更详细的讨论。
## 结构体和枚举是值类型
@@ -251,7 +251,7 @@ if tenEighty === alsoTenEighty {
请注意,“相同”(用三个等号表示,`===`)与“等于”(用两个等号表示,`==`)的不同。“相同”表示两个类类型(class type)的常量或者变量引用同一个类实例。“等于”表示两个实例的值“相等”或“等价”,判定时要遵照设计者定义的评判标准。
-当在定义你的自定义结构体和类的时候,你有义务来决定判定两个实例“相等”的标准。在章节 [等价操作符](./{1}md{2}) 中将会详细介绍实现自定义 == 和 !== 运算符的流程。
+当在定义你的自定义结构体和类的时候,你有义务来决定判定两个实例“相等”的标准。在章节 [等价操作符](./26_Advanced_Operators.md#equivalence_operators) 中将会详细介绍实现自定义 == 和 !== 运算符的流程。
### 指针