Efficient C++ 阅读笔记

技术要点:

  • reference 永远没有成为NULL的机会 如果出现 那么请隔离那个写出这种代码的程序员
  • 在写程序的时候为了系统的健壮性能,一定要测试 指针的可用性能 但是 reference 就可以不用测试.

{不指向任何对象: pointer
不同时间指向不同对象:pointer
总是会代表某个对象,永远不变心:reference }

  • static_cast() 拥有着和传统一样的表现形式
  • const_cast 最常用的用途将某一个对象的常量性去除掉
  • dynamic_cast 协助你巡航于继承体系之中
  • reinterpret_cast 最常用的用途是转换"函数指针" 例如:有一个函数指针返回的是 void 想强制转换 一个函数指针返回 int

funcPtrArray[0] = reinterpret_cast(&doSomething);
不具有移植性

  • 多态的具体实现方式:父类的指针指向子类
  • 不要用多态方式处理数组 因为子类的数组移动的大小和父类完全不一样
  • 具体类不要继承自另一个具体类 不太能够上面的犯错
  • 对定制的类型转换保持警觉,因为这样容易导致错误

解决方案之一 : 对double的重载转换为另一个函数取代类型转换操作符,asDouble 写一个这个函数

  • explicit 解决隐士转换

之二: 代理技术 例如 先把一个int 转换为一个类 然后这个类就不可以隐式转换为另一个类

  • 前置效率更高,因为没有创建临时变量,似乎后置的代码是以前置代码为基础的这样效率就差不多了
  • 不要重载 && 和 || 因为无法保证"骤死式" 最好也不要重载 ,号操作符号
posted on 2017-06-20 13:09  HDU李少帅  阅读(280)  评论(0编辑  收藏  举报