zoukankan      html  css  js  c++  java
  • 高效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:使用接口类,纯虚函数

  • 相关阅读:
    python中break、continue 、exit() 、pass终止循环的区别
    pandas 数据处理
    分布式爬虫
    crawlSpider全站数据爬取
    scrapy 中间件
    scrapy框架的日志等级和请求传参
    scrapy 递归解析和post请求
    scrapy管道持久化存储
    scrapy框架简介和基础应用
    高性能的异步爬虫
  • 原文地址:https://www.cnblogs.com/chusiyong/p/11451700.html
Copyright © 2011-2022 走看看