More Effective C++知识点总结
More Effective C++是 Scott Meyers 所著,侯捷译序、导读的技术资料,是对 Effective C++ 的延续和补充。这本书对面试帮助极大,涵盖了 C++ 编程中各种常见的技术难点和经验总结。下面是对该书的知识点总结:
基础议题
* Item 1:指针与引用的区别。在 C++ 中,指针和引用都是用来间接访问变量的,但它们有着不同的语义和使用场景。
* Item 2:尽量使用 C++ 风格的类型转换。C++ 提供了多种类型转换方式,了解它们的使用场景和规则是非常重要的。
* Item 3:不要对数组使用多态。在 C++ 中,数组和指针是不同的概念,混淆它们可能会导致错误。
运算符
* Item 5:谨慎定义类型转换函数。在 C++ 中,类型转换函数可以隐式地执行,这可能会导致错误。
* Item 6:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别。了解操作符的优先级和结合性是非常重要的。
* Item 7:不要重载“&&”,“||”,或“,”。这些操作符有着特殊的语义,重载它们可能会导致错误。
异常
* Item 9:使用析构函数防止资源泄漏。在 C++ 中,析构函数可以用来释放资源,防止资源泄漏。
* Item 10:在构造函数中防止资源泄漏。构造函数中也可以释放资源,防止资源泄漏。
* Item 11:禁止异常信息(exceptions)传递到析构函数外。在 C++ 中,析构函数不能抛出异常,否则可能会导致程序崩溃。
效率
* Item 16:牢记 80-20 规则(80-20 rule)。在 C++ 中,80% 的时间都花费在 20% 的代码上,因此,了解代码的性能瓶颈非常重要。
* Item 17:考虑使用 lazy evaluation(懒惰计算法)。懒惰计算法可以提高程序的性能和效率。
* Item 18:分期摊还期望的计算。在 C++ 中,算法的选择和实现对性能有着非常大的影响。
技巧
* Item 25:将构造函数和非成员函数虚拟化。在 C++ 中,虚拟函数可以提高程序的灵活性和可扩展性。
* Item 26:限制某个类所能产生的对象数。在 C++ 中,限制对象数可以防止资源的过度使用。
More Effective C++ 是一本非常实用的技术资料,对 C++ 程序员来说非常有价值。这本书涵盖了 C++ 编程中各种常见的技术难点和经验总结,帮助读者提高编程技术和解决问题的能力。