非书评-内容摘要

王很水
2018-07-03 13:32:46

GENETIC

item 1 iterator 有效性,不能解引用无效的迭代器。未定义行为。

item 2~3 实现case-insensitive 字符串 理解base_string<T>原理

item 4~5 具有最大可复用性的通用容器

item 6 临时对象

item 7 标准库

EXCEPTION-SAFETY

item 8~17 异常安全stack pop为什么设计成void

item 18 代码复杂性如果允许异常,代码隐藏多少路径item 19 代码复杂性2异常安全,基本保证,不泄露,强力保证,commit-or-rollback

  • 要strong-guarantee可能就需要牺牲点性能(校验代码保证异常安全,包括拷贝构造异常,RAII,rollback等)如果函数具有多重side-effect那就得封装分层来解决

类设计与继承

item 20~25 class mechanics class技术

  • 传引用,explicit关键字等小建议
  • 几个小建议,虚基类 using override默认值不要乱改
  • 几个OO概念,确定is-a/has-a关系,不要乱用public继承,
  • 设计模式,pimpl惯用法,函数方法和继承-复写方法比较
  • 重申上面的观点,不要滥用继承

PIMPL

item 26~28 编程依赖

item 29 编程级

...
显示全文

GENETIC

item 1 iterator 有效性,不能解引用无效的迭代器。未定义行为。

item 2~3 实现case-insensitive 字符串 理解base_string<T>原理

item 4~5 具有最大可复用性的通用容器

item 6 临时对象

item 7 标准库

EXCEPTION-SAFETY

item 8~17 异常安全stack pop为什么设计成void

item 18 代码复杂性如果允许异常,代码隐藏多少路径item 19 代码复杂性2异常安全,基本保证,不泄露,强力保证,commit-or-rollback

  • 要strong-guarantee可能就需要牺牲点性能(校验代码保证异常安全,包括拷贝构造异常,RAII,rollback等)如果函数具有多重side-effect那就得封装分层来解决

类设计与继承

item 20~25 class mechanics class技术

  • 传引用,explicit关键字等小建议
  • 几个小建议,虚基类 using override默认值不要乱改
  • 几个OO概念,确定is-a/has-a关系,不要乱用public继承,
  • 设计模式,pimpl惯用法,函数方法和继承-复写方法比较
  • 重申上面的观点,不要滥用继承

PIMPL

item 26~28 编程依赖

item 29 编程级防火墙 (compilation firewalls)

item 30 fast pimpl

名称搜索,命名空间,接口原则

item 31 名称搜索ADL

item 32~34 接口原则,就是头文件引用前向声明这些东西

内存管理

item 35~37 内存管理

  • 内存基本概念
  • RAII

traps. pitfalls. and anti-idioms

item 38 对象等同?资源可能泄露

item 39 自动转换

item 40 对象的生命周期

item 41 对象的生命周期2

  • 以上两条主要讲成员函数placement-new在this上不可取,不安全。比如继承引入的切割问题,也导致开销大,非异常安全,改变了对象的生命周期

杂项 miscellaneous

item 42 变量初始化T t();会被解析成函数声明

item 43 const

item 44 casts

item 45 bool,bool语义

item 46 forwarding functions函数调用转发效率问题传引用,除非profiler避免内联

item 47 control flow中的异常安全

0
0

查看更多豆瓣高分好书

回应(0)

添加回应

Exceptional C++的更多书评

推荐Exceptional C++的豆列

了解更多图书信息

豆瓣
免费下载 iOS / Android 版客户端