RTTI和对象转型

上传人:壹****1 文档编号:497872380 上传时间:2023-04-02 格式:DOC 页数:2 大小:36.50KB
返回 下载 相关 举报
RTTI和对象转型_第1页
第1页 / 共2页
RTTI和对象转型_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《RTTI和对象转型》由会员分享,可在线阅读,更多相关《RTTI和对象转型(2页珍藏版)》请在金锄头文库上搜索。

1、RTTI和对象转型这是我学习基于LinuxC+做的笔记!运行期型式信息RTTIRTTI运行期间表示对象的型式信息优势:允许使用指向基类的指针或引用自如地操纵派生类对象typeid:获取表达式的类型;type_info:型式信息类;”头文件:typeinfo”对象转型模板dynamic_cast:动态转型(类类型指针或引用的转型)static_cast:静态转型reinterpret_cast:复诠转型const_cast:常亮转型type_info类1. 编译器实现的动态形式信息类型;2. 用于在程序运行时保存数据对象的形式信息;3. 不能直接使用该类,只能通过typeid操作符;4调用成员函

2、数name(),可以获得类的名称;typeid操作符#includeProgrammerp;/z类Employee&e=p;/类couttypeid(e).name()endl;输出p实际类名的字符串Programmer”dynamic_cast三种方式“向上转型“向下转型“交叉转型:沿着类多重继承层次横向转型指针的动态转型“正确执行:指向目标类对象错误:结果为0/NULL(C+11:nullptr)引用的动态转型。正确执行:目标类对象的引用错误:引发bad_cast异常static_cast*与dynamic_cast不同,static_cast不仅可以用于指针和引用,还可用于其他类型“一般

3、用于非类型式的普通数据对象转型static_cast的问题“不进行运行期型式检查,不安全“若转型失败结果未定义const_cast。用于取消和设置量的const状态const_cast的问题classConstCastTestpublic:voidPrintNum()const;private:int_num;voidConstCastTest:PrintNum()const传进来常量指针this,指向当前类对象临时将指向常量对象指针转换为非常量const_cast(this)-num-;cout_numendl;reinterpret_cast。将任意型式的数据对象转型为目标型式可用于int与指针型的互换reinterpret_cast的问题”由程序员保证正确性64位系统和32位系统,之间的转型可能会出错

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号