运行期类型识别

C++支持运行期类型识别(RTTI)运行期类型识别提供以下功能:

在运行期对类型转换操作进行检查

在运行期确定对象类型

扩展C++提供的RTTI

一、在运行期对类型转换操作进行检查:dynamic_cast和static_cast操作符

在C++中,编译期合法的类型转换操作可能会在运行期发生错误,当转型操作数据对象指针或引用时,更易发生错误。


先对static_cast的类型转换检查进行说明

class B{};

class D : public B(){};

int main(){

D* p;

p=new B;

p=static_cast<D*>(new B);

}

以上代码中,p为D*类型指针,即指向派生类的指针,p=new B;会发生编译错误,因为没有将p转换为基类指针,就为它赋了一个基类对象的指针,但p=static_cast<D*>(new B);不会发生编译错误,因为使用static_cast将p转成了基类指针。

class B{

public:

void f(){}

};

class D : public B(){

void m(){}

};

int main(){

D* p;

p=static_cast<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值