美文网首页
Exceptional C++ 读书笔记

Exceptional C++ 读书笔记

作者: ccsexyz | 来源:发表于2016-04-22 14:59 被阅读0次

    一些重要概念

    • 异常安全 出现异常的情况下仍然能够正常运行,出现异常的情况下资源仍然能够被正确的释放,数据始终处于一致的状态
    • 异常中立 将所有的异常都转发给调用者

    良好的编程习惯

    • 尽可能在成员初始值列表中对数据成员进行初始化
    • 永远不要让析构函数抛出异常
    • 异常安全性规则 在每个函数中,我们要将所有可能会抛出异常的代码单独放在一起,并且对这些代码进行安全处理,然后才能使用不会抛出异常的操作来修改和清理程序的状态
    • 我们应该优先考虑内聚性,努力使每段代码都只有单一的明确的功能

    为什么pop操作返回值为空

    如果pop像下面这样声明

    template<typename T> T Stack<T>::pop(){}
    

    假定这个函数本身是异常安全和中立的,我们考虑如下的调用代码

    sometype t1(t.pop())
    sometype t2;
    t2 = t.pop(); //拷贝失败发生异常,由pop弹出的对象将永远丢失
    

    所以为了解决这个问题,一个较好的办法是讲获取栈顶的操作与弹栈操作分开

    Koeing查找规则

    如果你在声明函数的时候使用了一个类,那么在查找正确的函数名字时,编译器将会在包含参数类型的名称空间中也进行函数名字的匹配

    相关文章

      网友评论

          本文标题:Exceptional C++ 读书笔记

          本文链接:https://www.haomeiwen.com/subject/ishwlttx.html