C++从入门到放弃之:运行时类型信息

1. typeid操作符

  • 头文件
    #include <typeinfo>
  • 使用
    typeid(类型/对象);//返回typeinfo对象用于描述所作用类型或对象的类型信息
  • 注:
    1>typeinfo中包含name()成员函数,可以字符串形式获取类型信息
    2>typeinfo类支持++ !=操作符重载,通过他们可以直接进行类型直接的比较;如果类型之间具有多态的继承关系,还可以利用多态的语法特性确定指针或引用的实际目标对象类型

2. dynamic_cast动态类型转换

  • 语法
    目标变量 = dynamic_cast<目标类型>(源类型变量);
  • 应用场景
    主要用于具有多态继承关系父子类指针或引用之间的显示类型转换(向下造型)
  • 注:
    在转换过程中会检查目标对象和期望转换的目标类型是否一致,如果一致会转换成功,否则失败
    1>动态转换指针时,不合理会使转换的将指针置为NULL表示失败;
    2>动态转换引用时,不合理会使进程终止抛出bad_cast异常表示失败
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值