[Effective C++] study

Distinguish between pointers and references: 引用不能为空而且指向不变,同时某些语法的需要会使用。
Prefer C++-style casts:使用四种cast来替代()可以增加类型安全性和可阅读性,一般为static_cast, 如果装换const用const_cast,向基类转化用dynmaic_cast,还有reinterpret_cast很少使用,强制转换.
Never treat arrays polymorphically:使用数组保存无法保证多态性
Avoid gratuitous default constructors:没有默认构造函数往往会带来问题,但无意义的默认构造函数也不好。
Understand how throwing an exception differs from passing a parameter or calling a virtual function:扔出异常总是要复制对象的,如果是传值则共拷贝两次;异常的隐式类型转换匹配比函数传参数要少;异常匹配是按照代码的先后顺序进行,不 同于虚函数的最佳匹配。
Catch exceptions by reference:使用传饮用来捕获异常,使用指针会带来不知道是否应该自己删除的问题,传值会带来多一次的拷贝代价以及可能异常类型的切割等问题。