- 博客(112)
- 资源 (11)
- 收藏
- 关注
原创 Effective C++ 条款55:让自己熟悉 Boost
深入解析 Effective C++ 条款55,全面介绍 Boost 库的历史、特点、十大分类及核心组件,探讨 Boost 与 C++ 标准的关系,以及如何在项目中有效使用 Boost
2026-06-18 12:45:37
185
原创 Effective C++ 条款54:让自己熟悉包括 TR1 在内的标准程序库
深入解析 Effective C++ 条款54,介绍 C++98 标准库组成、TR1(Technical Report 1)的14个新组件,以及它们如何演变为现代 C++11/14/17 标准。
2026-06-18 12:44:29
176
原创 Effective C++ 条款53:不要轻忽编译器的警告
深入解析 Effective C++ 条款53,探讨为什么应该严肃对待编译器警告,分析常见警告类型及其背后的隐患,以及如何配置编译器以获得最大收益。
2026-06-18 12:43:32
188
原创 Effective C++ 条款52:写了 placement new 也要写 placement delete
深入解析 Effective C++ 条款52,揭示 placement new 与 placement delete 的配对必要性,分析构造函数异常时的隐微内存泄漏问题,以及如何避免遮掩正常版本
2026-06-18 12:42:25
234
原创 Effective C++ 条款51:编写 new 和 delete 时需固守常规
深入解析 Effective C++ 条款51,探讨自定义 operator new 和 operator delete 时必须遵守的规范,包括 new-handler 机制、0 bytes 申请处理以及 class 专属版本的注意事项。
2026-06-18 12:41:21
457
原创 Effective C++ 条款50:了解 new 和 delete 的合理替换时机
为了检测运用错误、收集动态分配内存之使用统计信息、增加分配和归还速度、降低缺省内存管理器带来的空间额外开销、弥补缺省分配器中的非最佳齐位、将相关对象成簇集中、获得非传统的行为。
2026-06-17 19:23:37
222
原创 Effective C++ 条款49:了解 new-handler 的行为
set_new_handler 允许客户指定一个在内存分配无法获得满足时被调用的函数;nothrow new 是一个颇具局限的工具,因为它只适用于内存分配(operator new),后继的构造函数调用还是可能抛出异常
2026-06-17 19:22:52
241
原创 Effective C++ 条款48:认识 template 元编程
模板元编程(TMP,template metaprogramming)可将工作由运行期移往编译期,因此得以实现早期错误侦测和更高的执行效率;TMP 可被用来生成基于政策选择组合的客户定制代码,也可用来避免生成对某些特殊类型并不适合的代码。
2026-06-17 19:22:05
248
原创 Effective C++ 条款47:请使用 traits classes 表现类型信息
traits classes 通过 templates 和 templates 特化使得类型相关信息在编译期可用,通过重载技术(overloading)实现在编译期对类型执行 if...else 测试。
2026-06-17 19:21:18
430
原创 Effective C++ 条款46:需要类型转换时请为模板定义非成员函数
当我们编写一个 class template,而它所提供之与此 template 相关的函数支持所有参数之隐式类型转换时,请将那些函数定义为 class template 内部的 friend 函数。
2026-06-17 19:19:07
222
原创 Effective C++ 条款45:运用成员函数模板接受所有兼容类型
学习使用成员函数模板实现泛化拷贝构造和赋值操作,让自定义类型支持所有兼容类型的隐式转换。
2026-06-16 20:40:23
209
原创 Effective C++ 条款44:将与参数无关的代码抽离 templates
掌握消除模板代码膨胀的技巧,学习如何将非类型模板参数和类型参数导致的冗余代码抽离出模板
2026-06-16 20:39:39
163
原创 Effective C++ 条款43:学习处理模板化基类内的名称
深入理解模板化基类中的名称查找问题,掌握在派生类模板中正确访问基类成员名称的三种方法。
2026-06-16 20:38:52
203
原创 Effective C++ 条款42:了解 typename 的双重意义
深入解析 C++ 中 typename 关键字的两种不同含义,掌握嵌套从属类型名称的正确使用方式。
2026-06-16 20:37:50
238
原创 Effective C++ 条款41:了解隐式接口和编译期多态
深入理解 C++ 中 class 的显式接口与运行期多态,以及 template 的隐式接口与编译期多态的区别与应用场景。
2026-06-16 20:34:45
219
原创 Effective C++ 条款40:明智而审慎地使用多重继承
深入解析 Effective C++ 条款40,理解多重继承的复杂性与风险,掌握菱形继承问题的解决方案,学习 virtual 继承的成本与收益,以及多重继承的正当使用场景
2026-06-15 21:44:32
212
原创 Effective C++ 条款39:明智而审慎地使用 private 继承
深入解析 Effective C++ 条款39,理解 private 继承与复合的取舍,掌握 is-implemented-in-terms-of 语义,学习 empty base optimization(空白基类最优化)的应用场景。
2026-06-15 21:42:10
213
原创 Effective C++ 条款38:通过复合塑模出 has-a 或 \“根据某物实现出\
深入解析 Effective C++ 条款38,理解复合(composition)与继承的本质区别,掌握 has-a 和 is-implemented-in-terms-of 两种语义,学习何时应该选择复合而非继承。
2026-06-15 21:41:08
283
原创 Effective C++ 条款37:绝不重新定义继承而来的缺省参数值
深入解析 Effective C++ 条款37,揭示 virtual 函数动态绑定与缺省参数静态绑定之间的矛盾,理解为什么不应该重新定义继承而来的缺省参数值,以及 NVI 设计模式的应用。
2026-06-15 21:40:02
379
原创 Effective C++ 条款36:绝不重新定义继承而来的 non-virtual 函数
深入解析 Effective C++ 条款36,理解为什么不应该重新定义继承而来的 non-virtual 函数,掌握静态绑定与动态绑定的本质区别,避免面向对象设计中的常见陷阱。
2026-06-15 21:38:28
1966
原创 Effective C++ 条款35:考虑 virtual 函数以外的其他选择
深入解析 Effective C++ 条款35,探索替代 virtual 函数的多种设计手法,包括 NVI(Template Method)、函数指针、std::function 和 Strategy 模式,帮助你在不同场景下做出最优设计选择。
2026-06-14 20:35:25
208
原创 Effective C++ 条款34:区分接口继承和实现继承
深入解析 Effective C++ 条款34,理解 public 继承下接口继承与实现继承的区别,掌握 pure virtual、impure virtual 和 non-virtual 函数的设计意图与最佳实践。
2026-06-14 20:34:33
165
原创 Effective C++ 条款33:避免遮掩继承而来的名字
深入解析 Effective C++ 条款33,理解 C++ 中名字遮掩(name hiding)的机制,掌握在继承体系中正确使用 using 声明和转交函数来避免继承名字被遮掩的问题。
2026-06-14 20:33:12
190
原创 Effective C++ 条款32:确定你的 public 继承塑模出 is-a(是一种)关系
深入解析 Effective C++ 条款32,理解 public 继承的本质是 is-a 关系,掌握 Liskov 替换原则在 C++ 中的实践,避免继承体系设计的常见陷阱。
2026-06-14 20:31:53
215
原创 Effective C++ 条款31:将文件间的编译依存关系降至最低
深入解析 Effective C++ 条款31,掌握如何通过 PIMPL 惯用法、前向声明和分离头文件等技巧,将文件间的编译依存关系降至最低,大幅提升大型项目的编译效率。
2026-06-14 20:30:43
182
原创 Effective C++ 条款30:透彻了解 inlining 的里里外外
深入解析 Effective C++ 条款30:透彻了解 inlining 的里里外外,分析 inline 关键字的本质、编译器决策机制、代码膨胀问题及最佳实践。
2026-06-13 22:41:40
398
原创 Effective C++ 条款29:为\“异常安全\“而努力是值得的
深入解析 Effective C++ 条款29:为异常安全而努力是值得的,详解三种异常安全保证(基本型、强烈型、不抛异常型)及其实现策略。
2026-06-13 22:40:35
217
原创 Effective C++ 条款28:避免使用 handles 指向对象内部
深入解析 Effective C++ 条款28:避免返回 handles(引用、指针、迭代器)指向对象内部,分析封装性破坏、const 正确性违反及悬空 handles 问题。
2026-06-13 22:39:35
279
原创 Effective C++ 条款27:尽量少做转型动作
深入解析 Effective C++ 条款27:尽量少做转型动作,详解 C++ 四种新式转型与旧式转型的区别,分析 dynamic_cast 的性能开销及避免转型的设计策略。
2026-06-13 22:38:28
254
原创 Effective C++ 条款26:尽可能延后变量定义式的出现时间
深入解析 Effective C++ 条款26:尽可能延后变量定义式的出现时间,通过代码示例分析延后定义带来的性能提升与代码清晰度改善。
2026-06-13 22:37:06
177
原创 Effective C++ 条款25:考虑写一个不抛异常的 swap 函数
深入理解 C++ swap 函数的设计哲学,掌握自定义 swap 实现异常安全与性能优化的关键技术
2026-06-12 13:07:57
218
原创 Effective C++ 条款24:若所有参数皆须要类型转换,请为此采用 non-member 函数
深入解析 C++ 隐式类型转换与运算符重载的陷阱,掌握 non-member 函数实现对称类型转换的正确方法
2026-06-12 13:06:59
192
原创 Effective C++ 条款23:宁以 non-member、non-friend 替换 member 函数
探索 C++ 封装性最大化的设计哲学,理解为何 non-member non-friend 函数往往优于 member 函数
2026-06-12 13:03:28
218
原创 Effective C++ 条款22:将成员变量声明为 private
深入探讨 C++ 封装原则,揭示将成员变量声明为 private 的深层价值与工程实践
2026-06-12 13:02:27
211
原创 Effective C++ 条款21:必须返回对象时,别妄想返回其 reference
深入解析 C++ 函数返回语义,揭示返回局部对象引用的致命陷阱,掌握 RVO 与移动语义优化之道
2026-06-12 13:01:25
359
原创 Effective C++ 条款20:宁以 pass-by-reference-to-const 替换 pass-by-value
深入解析 C++ 函数参数传递方式的选择策略,揭示 pass-by-value 的性能代价与对象切割问题,明确引用传递的适用边界与例外情况。
2026-06-11 10:53:40
181
原创 Effective C++ 条款19:设计 class 犹如设计 type
深入解析 C++ 类设计的核心思维,将 class 视为全新类型的设计过程,系统梳理对象生命周期、操作语义、继承关系等关键设计决策。
2026-06-11 10:52:51
230
原创 Effective C++ 条款18:让接口容易被正确使用,不易被误用
深入探讨 C++ 接口设计的核心原则,从促进正确使用和阻止误用两个维度,解析如何通过类型系统、约束设计和一致性原则打造健壮的 API。
2026-06-11 10:52:05
262
原创 Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
深入解析 C++ 中因编译器优化导致的隐式资源泄漏问题,揭示为何必须以独立语句完成 newed 对象到智能指针的转换,提供异常安全的代码实践。
2026-06-11 10:50:54
189
原创 Effective C++ 条款16:成对使用 new 和 delete 时要采取相同形式
深入解析 C++ 中 new 与 delete 的配对规则,揭示不匹配使用导致的未定义行为与内存泄漏风险,提供完整代码示例与最佳实践
2026-06-11 10:49:30
256
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅