17版c++学习笔记—动态强制类型转换dynamic_cast

1.dynamic_ cast只能用于支持方法多态类型的指针,如果转换成功,返回指针,转换失败返回nullptr

一般动态转换分为两种情况:

①向下转换downcast

②跨类转换crosscast

另外注意不要转换this指针

当dynamic _cast用 于转换引用时,转换失败将会抛出异常,一般不推荐转换引用(引用需要初始化,空指针不能初始化引用)

class MoveObject
{};
class Man:public MoveObject
{};
class BOSS
{};
class WolfMan:public BOSS,public Man
{};
int main()
{
    WolfMan wlfMan;   
    MoveObject* pMove = &wlfMan;
    auto p= dynamic_cast<BOSS*>(pMove);
}

①向下转换即从基类转换成子类

②p=dynamic_cast<BOSS*>(MoveObject*)//(因为这wolfman类包含MoveObject和BOSS)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值