• Effective C++ 条款18 让接口容易被正确使用,不易被误用


    1. 好的借口很容易被正确使用,不易被误用.

    2. "促进正确使用"的方法包括借口的一致性(例如STL容器用于统计大小的函数都名为size)以及与内置类型的行为兼容(例如重载*返回的值应加const限定以防被篡改).

    3. 阻止误用的办法包括建立新类型,限制类型上的操作,束缚对象值(使用枚举,static 成员函数返回特定对象),以及消除客户的资源管理责任(用智能指针替代原始指针做参数和返回值)

    4. shared_ptr支持定制性删除器(custom deleter),这可防范DLL问题("对象在动态链接库(DLL)被new创建,却在另一个DLLL内被delete销毁"),因为它缺省的delete是来自"shared_ptr"诞生所在的那个DLL的delete.最常见的shared_ptr实现品来自boost,boost的shared_ptr是原始指针的两倍大,以动态分配内存作为簿记用途和"删除器之专属数据",以virtual形式调用删除器,并在多线程程序修改引用次数时蒙受线程同步化(thread synchronization)的额外开销(只要定义一个预处理器符号就可以关闭多线程支持).总之,他比原始指针大且慢,而且使用辅助动态内存,但额外的执行成本却并不显著,"降低客户错误"的成效却是每个人都看得到.

  • 相关阅读:
    DFS-B
    DFS/BFS-A
    DFS-回溯与剪枝-C
    BFS-八数码问题与状态图搜索
    PTA-1003 我要通过!
    二分-G
    二分-F
    二分-E
    二分-D
    二分-C
  • 原文地址:https://www.cnblogs.com/reasno/p/4752723.html
Copyright © 2020-2023  润新知