游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3036|回复: 11

这个关键字~~~~

[复制链接]

26

主题

324

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
QQ
发表于 2004-9-17 12:01:00 | 显示全部楼层 |阅读模式
C++中的这个关键字“reinterpret_cast”从没用过,今天在某个程序中看到,从用法上看好象是一个类(或结构体)模板。
前辈们有人用过吗?干什么用的? [em24] [em13]

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2004-9-17 13:07:00 | 显示全部楼层

Re:这个关键字~~~~

转换类型时使用的。

5

主题

27

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2004-9-17 21:47:00 | 显示全部楼层

Re: 这个关键字~~~~

没错,它就是用模板实现的。还有 static_cast<>什么什么的。

[em19]

26

主题

324

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
QQ
 楼主| 发表于 2004-9-17 22:14:00 | 显示全部楼层

Re:这个关键字~~~~

能具体一些吗?拜托....

1

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2004-9-18 05:26:00 | 显示全部楼层

Re:这个关键字~~~~

呵呵,我是心有余而力不足啊

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2004-9-18 13:05:00 | 显示全部楼层

Re:这个关键字~~~~

我记得是这样的
static_cast   强制转型
const_cast  把常量去掉
dynamic_cast     继承类和基类转型
reinterpret_cast    一些不常用的转型  例如将整型转为指针,这个一般情况下是不用的 ,至少我没有用过



33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2004-9-18 13:07:00 | 显示全部楼层

Re:这个关键字~~~~

reinterpret_cast    就是转那些类型完全不同的类型的  , 而static_cast常用与将void*转为你所需要的类型的

26

主题

324

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
QQ
 楼主| 发表于 2004-9-18 15:53:00 | 显示全部楼层

Re:这个关键字~~~~

我也是在外国书籍中看到的。真搞不懂是外国人太专业还是咱们还差得太远,我是从来没想过要用这种类型。

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2004-9-20 13:13:00 | 显示全部楼层

Re:这个关键字~~~~

reinterpret_cast 我见过比较多的是在 com 技术里面,比较常用的是将基类对象转换为子类对象。也用于将 void* 转换成任意类型。

2

主题

10

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2004-9-20 13:23:00 | 显示全部楼层

Re:这个关键字~~~~

reinterpret_cast处理互不相关类型之间的转换。reinterpret_cast的存在表示这次转换具有危险!很可能不能保证可移植性。

p228,c++ programing language中文版如是说:
reinterpret_cast是最粗鲁的,或许也是最肮脏的类型转换运算符。在大部分情况下,它就是简单地产生一个值,其二进制模式与原参数一致,而且具有所需要地类型。这样,该运算符可以用于那些本质上就是依赖于实现地、危险地,而偶然又是绝对必须地将整数转换到指针或反过来地活动。

对上面的话,我的理解也不是很充分。反正我是重来没用过reinterpret_cast的:)它的出现,能使程序员表达“这次类型转换是依赖实现的,危险”的意思,本质上它于其它c++类型转换是和c的类型转换是一样的,只是有了更明显的字面意义而已。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-18 20:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表