没有合适的资源?快使用搜索试试~ 我知道了~
static_cast,dynamic_cast,reinterpret_cast,const_cast的区别及用法详解
18 下载量 140 浏览量
2020-12-31
15:13:01
上传
评论 1
收藏 34KB PDF 举报
温馨提示
试读
1页
1.static_cast对类的指针只能转换有继承关系的类。对普通的指针来说只能在void*和其他指针之间转换。它还可转换简单的类型,比如int到char等。不能提供数字到指针的转换。不能提供不同类型指针之间的转换比如int*到char*。 2.dynamic_cast提供安全的转换如果两个指针不存在继承关系转换会失败返回空指针,如果你提供一个错误的指针那样会发生内存访问异常,因为它会去比较两个类型的虚函数表。虚函数表的指针一般放在对象指针最开始的四字节中,你去访问一个错误的地址这样肯定会发生异常。 3.reinterpret_cast提供数字到指针间的转换比如void*到int。提供不同类型
资源推荐
资源详情
资源评论
static_cast,dynamic_cast,reinterpret_cast,const_cast的区的区
别及用法详解别及用法详解
1.static_cast对类的指针只能转换有继承关系的类。对普通的指针来说只能在void*和其他指针之间转换。它还可转换简单的
类型,比如int到char等。不能提供数字到指针的转换。不能提供不同类型指针之间的转换比如int*到char*。
2.dynamic_cast提供安全的转换如果两个指针不存在继承关系转换会失败返回空指针,如果你提供一个错误的指针那样会发
生内存访问异常,因为它会去比较两个类型的虚函数表。虚函数表的指针一般放在对象指针最开始的四字节中,你去访问一个
错误的地址这样肯定会发生异常。
3.reinterpret_cast提供数字到指针间的转换比如void*到int。提供不同类型指针的强制转换比如int*到char*。不提供int到char
的转换。但是处理类指针转换的时候不能用它,它不会自动的调整指针。
4.const_cast把一个const指针转为非const,最好不要用这个转换。
您可能感兴趣的文章您可能感兴趣的文章:C++中的类型转换static_cast、dynamic_cast、const_cast和reinterpret_cast总结c++ dynamic_cast与
static_cast使用方法示例static_cast,dynamic_cast,reinterpret_cast和const_cast的区别详解C++ 中dynamic_cast<>的使
用方法小结由static_cast和dynamic_cast到C++对象占用内存的全面分析
资源评论
weixin_38663701
- 粉丝: 3
- 资源: 954
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功