高效C++:实现

本章主要是解决如下问题:

  1. 类的声明和定义在什么时候提出

  2. 类与类之间的耦合关系如何降低

  3. 类型转换怎么正确使用

 

尽可能延后变量定义式的出现

  • 变量用到时在定义,不要提前定义,防止变量定义而没有使用的情况,因为代码可能中途返回

 

尽量少做转型动作

  • 转型就是破坏语言的类型系统,带来问题是必然的

  • 以C++的转型代替C的转型

 

避免返回的handler指向对象的内部成分

  • 不要返回指针和引用指向对象内部,容易导致指针和引用指向无效内存的问题,也降低类的封装性

  • const函数尽量返回const类型,帮助其行为更加规范

 

为“异常安全”而努力

  • 异常产生后的两点要求:

    • 不泄露任何资源
    • 不允许数据破坏
  • 异常安全的级别

    • 基本承诺:程序内的任何事物保持原状(基本)

    • 强烈保证:函数成功就全部成功,失败就回到调用状态前(目标)

    • 不抛异常保证:承诺绝不跑抛出异常(一般不能保证)

  • 合理利用swap函数

 

彻底了解inlining的里里外外

  • 小型且频繁每调用的函数才使用inline

  • inline函数一般放在头文件中,包括函数实现

  • template函数不要实现成inline,除非是template的所有具现函数都需要inline

  • 构造函数和析构函数不要inline

 

将文件间的依赖关系降到最低

  • 思想:依赖于声明式,不要依赖于定义式

  • 手段:Handler class 和 Interface class

    • Handler class:在实现类中 使用指针

    • Interface class:使用接口类,纯虚函数

 

posted @ 2019-09-03 10:55  Yong_无止境  阅读(263)  评论(0编辑  收藏  举报