美文网首页
Effective C++ Term 28 尽量避免转型操作

Effective C++ Term 28 尽量避免转型操作

作者: vancymoon | 来源:发表于2019-05-21 01:43 被阅读0次

    转型操作其实是一个没有办法的办法,一般情况下,能不用就不用;如果转型不可避免,也要用最安全的办法进行

    旧式转型操作

    (T)expression;
    T(expression);
    

    这是我们惯用的两种旧式转型方法,比如从int转型到double

    新式转型操作

    建议全部采用新式转型,抛弃旧式转型

    static_cast

    static_cast的用法是最简单的,但是要注意一点,它是对参数进行拷贝后再进行操作的,不是在原对象身上进行操作,详情见https://stackoverflow.com/questions/9084835/why-does-static-castthis-to-a-base-class-create-a-temporary-copy

    dynamic_cast

    作用是安全地由基类 down casting 到派生类

    值得指出的是,dynamic_cast的开销可能比较大,在对性能要求比较高的场合,要尤其注意

    dynamic_cast的使用场合一般是,手头有一个基类的指针或引用,但你很确信实际的类型是一个派生类

    相关文章

      网友评论

          本文标题:Effective C++ Term 28 尽量避免转型操作

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