[Effective C++ 笔记]条款 21. 必须返回对象时,不要试图返回其引用 发表于 2021-01-05 分类于 阅读笔记 , Effective C++ 评论数: 3.7k 3 分钟 简介 绝不在函数中返回一个指向局部变量的引用或指针 不要在函数中返回一个动态分配的对象 不要在有可能多次调用的函数中返回一个局部静态变量 阅读全文 »
[MIT 6.S081]操作系统-学习笔记 1 发表于 2020-12-16 更新于 2020-12-19 分类于 操作系统 , 6.S081 评论数: 7.5k 7 分钟 前言最近开始学习 MIT 的 6.S081,由于讲课视频、课件以及作业都比较完善,所以学习体验也比较好。课程链接为:6.S081。由于之前已经上过一次操作系统了,所以这次学习主要是希望能通过完成作业来加深对 Linux 操作系统的理解。目前准备整理一下做作业时候遇到的一些问题和难点,主要是记录一下做作业的思路,不会涉及具体实现代码。如果后面遇到没学过的内容可能会整理听课的笔记。 阅读全文 »
[Effective C++ 笔记]条款 20. 尽量使用常值引用传递代替值传递 发表于 2020-12-15 分类于 阅读笔记 , Effective C++ 评论数: 3.6k 3 分钟 简介 尽量以常值引用传递(pass-by-reference to const)代替值传递(pass by value);前者比较高效并且可以避免对象切割问题 对内置类型、STL 迭代器和函数对象使用值传递 阅读全文 »
[Effective C++ 笔记]条款 19. 像设计 type 一样设计 class 发表于 2020-11-24 分类于 阅读笔记 , Effective C++ 评论数: 1.1k 1 分钟 简介正如其他 OOP 语言一样,当 C++ 程序员定义了一个新的 class 之后,也相当于定义了一个 type,因此程序员的大部分时间其实是在扩展类型系统。程序员在设计 class 时要像语言设计者设计内置类型一样进行设计,需要考虑重载函数、操作符、内存管理、对象的初始化以及销毁等等。 阅读全文 »
[Effective C++ 笔记]条款 18. 让接口容易被正确使用并且不易被错误使用 发表于 2020-11-05 更新于 2020-11-15 分类于 阅读笔记 , Effective C++ 评论数: 2.7k 2 分钟 简介 在设计接口时应该尽可能使得接口不容易被误用 提高正确使用接口的方法包括:接口一致性,与内置类型行为兼容 防止误用的方法包括:建立新类型,限制类型操作,限制对象可选值,消除使用者的资源管理责任 阅读全文 »
[Effective C++ 笔记]条款17. 以独立语句将 `new`ed 对象置入智能指针 发表于 2020-11-05 更新于 2020-11-15 分类于 阅读笔记 , Effective C++ 评论数: 1.3k 1 分钟 简介 以独立语句将 new 的对象置于智能指针中。否则一旦操作之间有异常被抛出有可能会导致难以察觉的资源泄漏 阅读全文 »
[Effective C++ 笔记]条款 16. 成对使用 new 和 delete 时要采取相同形式 发表于 2020-10-28 更新于 2020-11-15 分类于 阅读笔记 , Effective C++ 评论数: 1.7k 2 分钟 简介 在调用 delete 时使用和当初构造时使用的 new 相同的形式 阅读全文 »
[Effective C++ 笔记]条款 15. 在资源管理类中提供对原始资源的访问 发表于 2020-10-26 更新于 2020-11-15 分类于 阅读笔记 , Effective C++ 评论数: 2.9k 3 分钟 简介 API 往往要求会要求访问原始资源 (raw resources),所以没一个 RAII 类都需要提供一个可以让使用者访问原始资源的方法 对原始资源的访问可以通过显式或隐式转换获得。通常来说,显示转换比较安全,而隐式转换对使用者而言比较方便。 阅读全文 »
[Effective C++ 笔记]条款14. 在资源管理类中小心 copy 行为 发表于 2020-10-18 分类于 阅读笔记 , Effective C++ 评论数: 4k 4 分钟 简介 复制 RAII 对象必须一并复制其所管理的资源,所以资源的 copying 行为决定了 RAII 对象的 copying 行为 普遍的 RAII 类 copying 行为是: 抑制 copying、使用引用计数法管理;另外还有其他方法也可能实现。 阅读全文 »
[Effective C++ 笔记]条款 13. 使用对象管理资源 发表于 2020-10-09 分类于 阅读笔记 , Effective C++ 评论数: 4.1k 4 分钟 简介 为了防止资源泄漏,使用 RAII 对象管理资源,以保证他们在构造函数中获得资源并在析构函数释放资源 c++98 中两个常用的 RAII 对象为 std::auto_ptr 和 std::tr1::shared_ptr c++11 之后尽量使用 std::unique_ptr, std::shared_ptr 和 std::weak_ptr 阅读全文 »