游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2942|回复: 9

C++中是不是这样做类型强制转换的?就是向上提升一级的

[复制链接]

39

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2005-9-25 16:21:00 | 显示全部楼层 |阅读模式
int  a=80;
float b=7.0f

然后定义了一个float型的变量p,求a,b两个变量的商,要让P得到13.333333的值下面两种做法

(1)    float p = a/b;


(2 )    float p = (float)a/b;

第二种那个(float)类型的强制转换是不是多余呢?



---------------------------------------

是不是int型和float型做加减乘除int型自动强制转换为float型的,结果就是float型的;float型的和double型的做运算时,float型自动转化为double型的,结果也是double型的。

我记的这个好象在哪里看到过一次,叫C++的向上原则,就是不知道对不对,请C++基础好的指教一下吧!
sf_2005925162031.jpg

21

主题

120

帖子

129

积分

注册会员

Rank: 2

积分
129
发表于 2005-9-25 17:21:00 | 显示全部楼层

Re:C++中是不是这样做类型强制转换的?就是向上提升一级

C++向上转换好像是指子类对象指针转换为父类对象指针吧。
爱丽斯和本主题有什么联系吗?

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2005-9-25 18:21:00 | 显示全部楼层

Re:C++中是不是这样做类型强制转换的?就是向上提升一级

b将隐式转换到float

39

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
 楼主| 发表于 2005-9-25 20:34:00 | 显示全部楼层

Re:C++中是不是这样做类型强制转换的?就是向上提升一级

楼上的大哥,b本来就是float型的,怎么会隐式的转到float型呢?按照最好的想法,是你看错了,a才是int型的。

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2005-9-25 21:53:00 | 显示全部楼层

Re: C++中是不是这样做类型强制转换的?就是向上提升一

手误了 [em23]

3

主题

105

帖子

105

积分

注册会员

Rank: 2

积分
105
发表于 2005-9-25 22:05:00 | 显示全部楼层

Re:C++中是不是这样做类型强制转换的?就是向上提升一级

    正确的说法应该叫做提升, C++ 会让操作符之间的两个变量保持在同一个水平上,上面的除法中, a 将 提升到float 以求跟b 达到同样的精确度

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-9-26 10:22:00 | 显示全部楼层

Re:C++中是不是这样做类型强制转换的?就是向上提升一级

楼上说的对
不过楼主的强制类型转换已经是旧式的了
建议还是使用static_cast这样的新式强制类型转换好

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-9-26 10:32:00 | 显示全部楼层

Re:C++中是不是这样做类型强制转换的?就是向上提升一级

旧式的写起来比较方便。。。

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2005-9-26 14:50:00 | 显示全部楼层

Re:C++中是不是这样做类型强制转换的?就是向上提升一级

在运算时,把大家提升到相同的类型,这样计算比较方便!C++中叫提升!我也是比较喜欢用旧式的类型转换,新的太长了,输入累(懒啦)!

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2005-9-26 14:53:00 | 显示全部楼层

Re:C++中是不是这样做类型强制转换的?就是向上提升一级

至于你问的第二个问题,我的建议是虽然C++默认情况下可以用提升的方法达到类型转换,但是还是别偷懒,自己加入强制转换。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-27 23:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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