GeraldIAD 发表于 2022-4-23 21:05:13

double d2=reinterpret cast<double &>(m);该语句是什么意思?

大一学面向对象,学到类型转换操作符,某课后题:
存在语句:int m=10;
double d1=static cast<double>(m);
double d2=reinterpret cast<double &>(m);则d1与d2是相等的。
请问对错?

GeraldIAD 发表于 2022-4-23 21:22:28

让我疑惑的点主要是前面double d2后面转换怎么是<double &>

人造人 发表于 2022-4-23 21:34:01

两个都是错的

傻眼貓咪 发表于 2022-4-24 09:23:43

static_cast
reinterpret_cast

GeraldIAD 发表于 2022-4-24 10:14:08

人造人 发表于 2022-4-23 21:34
两个都是错的

第一个double d1=static_cast<double>(m);是可以正确转换的

GeraldIAD 发表于 2022-4-24 10:14:58

傻眼貓咪 发表于 2022-4-24 09:23
static_cast
reinterpret_cast

是的我知道是这个 题中的reinterpret为什么前面是的d2定义为double型,后面转换m的时候用了<double &>型

傻眼貓咪 发表于 2022-4-24 11:09:51

GeraldIAD 发表于 2022-4-24 10:14
是的我知道是这个 题中的reinterpret为什么前面是的d2定义为double型,后面转换m的时候用了型

因为它主要是产生一个新的值,这个值会有与原始值有完全相同的比特位(bit)。

基本上,如果你只是想单纯转换类型,用 static_cast 就可以了。其余 3 个转换法视状况而用。
页: [1]
查看完整版本: double d2=reinterpret cast<double &>(m);该语句是什么意思?