reinterpret_cast和static_cast区别

voodoo82 2004-08-24 11:29:26
一直对这两个转换有点模糊,那位大大解答一下,最好举几个实际的例子。

《Inside COM》第8章的例子有如下代码:
m_pUnknownOuter = reinterpret_cast<IUnknown*>
(static_cast<INondelegatingUnknown*>(this)) ;

如果有看过这个例子的也请解释一下这句代码为什么这样写?

谢谢啦!!!!!!!!
...全文
163 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pacman2000 2004-08-24
  • 打赏
  • 举报
回复
有的时候,两种转换都处理不了。。。最后还是只好C方式转了算了。
yjh1982 2004-08-24
  • 打赏
  • 举报
回复
reinterpret_cast平台相关.还不如C风格的转换....
北极猩猩 2004-08-24
  • 打赏
  • 举报
回复
static_cast在进行转换时,将对原类型和目的类型进行静态的检验,他只允许一些合理的转换,比如:将子类的指针转换为基类的指针,将整型转为字符型等。但是,它会拒绝一些转换,比如将整数转换为指针等

而reinterpret_cast允许任意的类型装换,包括将指针转换为整数,将整数转换为指针,以及将常量转换为非常量等

64,666

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧