改变旧有的C习惯: 1. 尽量以const和inline取代#define 2. 尽量以<iostream>取代<stdio.h> 3. 尽量以new和delete取代mall
技巧 本书涉及的大多数内容都是编程的指导准则。这些准则虽是重要的,但是程序员不能单靠准则生活。有一个很早以前的卡通片叫做“菲利猫”(Felix the Cat), 菲利猫无论何时遇到困难,它都会拿
条款24:理解虚拟函数、多继承、虚基类和RTTI所需的代价 此文包含一些图片,无法贴到文档区,所以我把word文档压成zip文件放在了文件交流区,请下载阅读, C++编译器们必须实现语言的每一
条款23:考虑变更程序库 程序库的设计就是一个折衷的过程。理想的程序库应该是短小的、快速的、强大的、灵活的、可扩展的、直观的、普遍适用的、具有良好的支持、没有使用约束、没有错误的。这也是不存在的。
条款22:考虑用运算符的赋值形式(op=)取代其单独形式(op) 大多数程序员认为如果他们能这样写代码: x = x + y; x = x - y;
条款21:通过重载避免隐式类型转换 以下是一段代码,如果没有什么不寻常的原因,实在看不出什么东西: class UPInt {
条款20:协助完成返回值优化 一个返回对象的函数很难有较高的效率,因为传值返回会导致调用对象内的构造和析构函数(参见条款19),这种调用是不能避免的。问题很简单:一个函数要么为了保证正确的行为而返
条款19:理解临时对象的来源 当程序员之间进行交谈时,他们经常把仅仅需要一小段时间的变量称为临时变量。例如在下面这段swap(交换)例程里: template<class T>
条款18:分期摊还期望的计算 在条款17中,我极力称赞懒惰的优点,尽可能地拖延时间,并且我解释说懒惰如何提高程序的运行效率。在这个条款里我将采用一种不同的态度。这里将不存在懒惰。我鼓励你让程序做的
条款17:考虑使用lazy evaluation(懒惰计算法) 从效率的观点来看,最佳的计算就是根本不计算,那好,不过如果你根本就不用进行计算的话,为什么还在程序开始处加入代码进行计算呢?并且如果