第一章 从C转向C++ 条款1:尽量用const和inline而不用#define 条款2:尽量用而不用 条款3:尽量用new和delete而不用malloc和free 条款4:尽量使用c++风格的注
第一章 从C转向C++ 条款1:尽量用const和inline而不用#define 条款2:尽量用而不用 条款3:尽量用new和delete而不用malloc和free 条款4:尽量使用c++风格的
改变旧有的C习惯: 1. 尽量以const和inline取代#define 2. 尽量以<iostream>取代<stdio.h> 3. 尽量以new和delete取代mall
条款22:考虑用运算符的赋值形式(op=)取代其单独形式(op) 大多数程序员认为如果他们能这样写代码: x = x + y; x = x - y;
条款21:通过重载避免隐式类型转换 以下是一段代码,如果没有什么不寻常的原因,实在看不出什么东西: class UPInt {
条款19:理解临时对象的来源 当程序员之间进行交谈时,他们经常把仅仅需要一小段时间的变量称为临时变量。例如在下面这段swap(交换)例程里: template<class T>
条款15:了解异常处理的系统开销 为了在运行时处理异常,程序要记录大量的信息。无论执行到什么地方,程序都必须能够识别出如果在此处抛出异常的话,将要被释放哪一个对象;程序必须知道每一个入口点,以便从
条款14:审慎使用异常规格(exception specifications) 毫无疑问,异常规格是一个引人注目的特性。它使得代码更容易理解,因为它明确地描述了一个函数可以抛出什么样的异常。但是它
条款11:禁止异常信息(exceptions)传递到析构函数外 在有两种情况下会调用析构函数。第一种是在正常情况下删除一个对象,例如对象超出了作用域或被显式地delete。第二种是异常传递的堆栈辗
异常 C++新增的异常(exception)机制改变了某些事情,这种改变是深刻的,彻底的,可能是令人不舒服的。例如使用未经处理的或原始的指针变得很危险。资源泄漏的可能性增加了。写出具有你希望的行为