美文网首页
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