From 03f427f6a595b932a84423142318af3d033f98aa Mon Sep 17 00:00:00 2001 From: Qv Junping Date: Fri, 29 Mar 2019 16:52:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8B=98=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 +++++++------- README_Details.md | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index a558ff4..5db9f98 100644 --- a/README.md +++ b/README.md @@ -121,13 +121,13 @@ int* const function7(); // 返回一个指向变量的常指针,使用:i ```cpp // 声明1(加 inline,建议使用) -inline int functionName(int first, int secend,...); +inline int functionName(int first, int second,...); // 声明2(不加 inline) -int functionName(int first, int secend,...); +int functionName(int first, int second,...); // 定义 -inline int functionName(int first, int secend,...) {/****/}; +inline int functionName(int first, int second,...) {/****/}; // 类内定义,隐式内联 class A { @@ -1227,7 +1227,7 @@ class doSomething(Flyable *obj) // 做些事情 39. 明智而审慎地使用 private 继承(private 继承意味着 is-implemented-in-terms-of(根据某物实现出),尽可能使用复合,当 derived class 需要访问 protected base class 的成员,或需要重新定义继承而来的时候 virtual 函数,或需要 empty base 最优化时,才使用 private 继承) 40. 明智而审慎地使用多重继承(多继承比单一继承复杂,可能导致新的歧义性,以及对 virtual 继承的需要,但确有正当用途,如 “public 继承某个 interface class” 和 “private 继承某个协助实现的 class”;virtual 继承可解决多继承下菱形继承的二义性问题,但会增加大小、速度、初始化及赋值的复杂度等等成本) 41. 了解隐式接口和编译期多态(class 和 templates 都支持接口(interfaces)和多态(polymorphism);class 的接口是以签名为中心的显式的(explicit),多态则是通过 virtual 函数发生于运行期;template 的接口是奠基于有效表达式的隐式的(implicit),多态则是通过 template 具现化和函数重载解析(function overloading resolution)发生于编译期) -42. 了解 typename 的双重意义(声明 template 类型参数是,前缀关键字 class 和 typename 的意义完全相同;请使用关键字 typename 标识嵌套从属类型名称,但不得在基类列(base class lists)或成员初值列(member initialization list)内以它作为 basee class 修饰符) +42. 了解 typename 的双重意义(声明 template 类型参数是,前缀关键字 class 和 typename 的意义完全相同;请使用关键字 typename 标识嵌套从属类型名称,但不得在基类列(base class lists)或成员初值列(member initialization list)内以它作为 base class 修饰符) 43. 学习处理模板化基类内的名称(可在 derived class templates 内通过 `this->` 指涉 base class templates 内的成员名称,或藉由一个明白写出的 “base class 资格修饰符” 完成) 44. 将与参数无关的代码抽离 templates(因类型模板参数(non-type template parameters)而造成代码膨胀往往可以通过函数参数或 class 成员变量替换 template 参数来消除;因类型参数(type parameters)而造成的代码膨胀往往可以通过让带有完全相同二进制表述(binary representations)的实现类型(instantiation types)共享实现码) 45. 运用成员函数模板接受所有兼容类型(请使用成员函数模板(member function templates)生成 “可接受所有兼容类型” 的函数;声明 member templates 用于 “泛化 copy 构造” 或 “泛化 assignment 操作” 时还需要声明正常的 copy 构造函数和 copy assignment 操作符) @@ -1863,7 +1863,7 @@ B树/B+树 |O(log2n) | | * 锁机制:包括互斥锁/量(mutex)、读写锁(reader-writer lock)、自旋锁(spin lock)、条件变量(condition) * 互斥锁/量(mutex):提供了以排他方式防止数据结构被并发修改的方法。 * 读写锁(reader-writer lock):允许多个线程同时读共享数据,而对写操作是互斥的。 - * 自旋锁(spin lock)与互斥锁类似,都是为了保护共享资源。互斥锁是当资源被占用,申请者进入睡眠状态;而自旋锁则循环检测保持着是否已经释放锁。 + * 自旋锁(spin lock)与互斥锁类似,都是为了保护共享资源。互斥锁是当资源被占用,申请者进入睡眠状态;而自旋锁则循环检测保持者是否已经释放锁。 * 条件变量(condition):可以以原子的方式阻塞进程,直到某个特定条件为真为止。对条件的测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一起使用。 * 信号量机制(Semaphore) * 无名线程信号量 @@ -2056,7 +2056,7 @@ int main() > 本节部分知识点来自《计算机网络(第 7 版)》 -计算机经网络体系结构: +计算机网络体系结构: ![计算机经网络体系结构](images/计算机经网络体系结构.png) @@ -2080,7 +2080,7 @@ int main() 通道: * 单向通道(单工通道):只有一个方向通信,没有反方向交互,如广播 -* 双向交替通行(半双工通信):通信双方都可发消息,但不能同时发送或接收 +* 双向交替通信(半双工通信):通信双方都可发消息,但不能同时发送或接收 * 双向同时通信(全双工通信):通信双方可以同时发送和接收信息 通道复用技术: diff --git a/README_Details.md b/README_Details.md index 4ed7430..943ee2d 100644 --- a/README_Details.md +++ b/README_Details.md @@ -136,13 +136,13 @@ int* const function7(); // 返回一个指向变量的常指针,使用:i ```cpp // 声明1(加 inline,建议使用) -inline int functionName(int first, int secend,...); +inline int functionName(int first, int second,...); // 声明2(不加 inline) -int functionName(int first, int secend,...); +int functionName(int first, int second,...); // 定义 -inline int functionName(int first, int secend,...) {/****/}; +inline int functionName(int first, int second,...) {/****/}; // 类内定义,隐式内联 class A { @@ -1242,7 +1242,7 @@ class doSomething(Flyable *obj) // 做些事情 39. 明智而审慎地使用 private 继承(private 继承意味着 is-implemented-in-terms-of(根据某物实现出),尽可能使用复合,当 derived class 需要访问 protected base class 的成员,或需要重新定义继承而来的时候 virtual 函数,或需要 empty base 最优化时,才使用 private 继承) 40. 明智而审慎地使用多重继承(多继承比单一继承复杂,可能导致新的歧义性,以及对 virtual 继承的需要,但确有正当用途,如 “public 继承某个 interface class” 和 “private 继承某个协助实现的 class”;virtual 继承可解决多继承下菱形继承的二义性问题,但会增加大小、速度、初始化及赋值的复杂度等等成本) 41. 了解隐式接口和编译期多态(class 和 templates 都支持接口(interfaces)和多态(polymorphism);class 的接口是以签名为中心的显式的(explicit),多态则是通过 virtual 函数发生于运行期;template 的接口是奠基于有效表达式的隐式的(implicit),多态则是通过 template 具现化和函数重载解析(function overloading resolution)发生于编译期) -42. 了解 typename 的双重意义(声明 template 类型参数是,前缀关键字 class 和 typename 的意义完全相同;请使用关键字 typename 标识嵌套从属类型名称,但不得在基类列(base class lists)或成员初值列(member initialization list)内以它作为 basee class 修饰符) +42. 了解 typename 的双重意义(声明 template 类型参数是,前缀关键字 class 和 typename 的意义完全相同;请使用关键字 typename 标识嵌套从属类型名称,但不得在基类列(base class lists)或成员初值列(member initialization list)内以它作为 base class 修饰符) 43. 学习处理模板化基类内的名称(可在 derived class templates 内通过 `this->` 指涉 base class templates 内的成员名称,或藉由一个明白写出的 “base class 资格修饰符” 完成) 44. 将与参数无关的代码抽离 templates(因类型模板参数(non-type template parameters)而造成代码膨胀往往可以通过函数参数或 class 成员变量替换 template 参数来消除;因类型参数(type parameters)而造成的代码膨胀往往可以通过让带有完全相同二进制表述(binary representations)的实现类型(instantiation types)共享实现码) 45. 运用成员函数模板接受所有兼容类型(请使用成员函数模板(member function templates)生成 “可接受所有兼容类型” 的函数;声明 member templates 用于 “泛化 copy 构造” 或 “泛化 assignment 操作” 时还需要声明正常的 copy 构造函数和 copy assignment 操作符) @@ -1868,7 +1868,7 @@ B树/B+树 |O(log2n) | | * 锁机制:包括互斥锁/量(mutex)、读写锁(reader-writer lock)、自旋锁(spin lock)、条件变量(condition) * 互斥锁/量(mutex):提供了以排他方式防止数据结构被并发修改的方法。 * 读写锁(reader-writer lock):允许多个线程同时读共享数据,而对写操作是互斥的。 - * 自旋锁(spin lock)与互斥锁类似,都是为了保护共享资源。互斥锁是当资源被占用,申请者进入睡眠状态;而自旋锁则循环检测保持着是否已经释放锁。 + * 自旋锁(spin lock)与互斥锁类似,都是为了保护共享资源。互斥锁是当资源被占用,申请者进入睡眠状态;而自旋锁则循环检测保持者是否已经释放锁。 * 条件变量(condition):可以以原子的方式阻塞进程,直到某个特定条件为真为止。对条件的测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一起使用。 * 信号量机制(Semaphore) * 无名线程信号量 @@ -2059,7 +2059,7 @@ int main() > 本节部分知识点来自《计算机网络(第 7 版)》 -计算机经网络体系结构: +计算机网络体系结构: ![计算机经网络体系结构](images/计算机经网络体系结构.png) @@ -2083,7 +2083,7 @@ int main() 通道: * 单向通道(单工通道):只有一个方向通信,没有反方向交互,如广播 -* 双向交替通行(半双工通信):通信双方都可发消息,但不能同时发送或接收 +* 双向交替通信(半双工通信):通信双方都可发消息,但不能同时发送或接收 * 双向同时通信(全双工通信):通信双方可以同时发送和接收信息 通道复用技术: