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