美文网首页
static_cast和dynamic_cast

static_cast和dynamic_cast

作者: fightingWL | 来源:发表于2020-12-31 08:55 被阅读0次

    https://www.jianshu.com/p/5163a2678171
    在类层次间进行上行转换时,dynamic_cast和static_cast的效果是一样的;在进行下行转换时,dynamic_cast具有类型检查的功能,比static_cast更安全。

    class B
    {
         virtual void f(){};
    };
    class D : public B
    {
         virtual void f(){};
    };
    void main()
    {
         B* pb = new D;   // unclear but ok
         B* pb2 = new B;
         D* pd = dynamic_cast<D*>(pb);   // ok: pb actually points to a D
         D* pd2 = dynamic_cast<D*>(pb2);   // pb2 points to a B not a D, now pd2 is NULL
    }
    

    相关文章

      网友评论

          本文标题:static_cast和dynamic_cast

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