在C++中,is(int)ch等价于int(ch).
如果没有,有什么区别?
它们是同一个东西,也是一样的(int)(ch)
.在C++中,通常首选使用命名转换来阐明您的意图:
用于static_cast
在不同大小或签名的原始类型之间进行转换,例如static_cast
.
用于dynamic_cast
将基类向下转换为派生类(仅限多态类型),例如dynamic_cast
.
用于reinterpret_cast
在不同类型的指针之间或在指针和整数之间进行转换,例如reinterpret_cast
.
用于从变量中const_cast
删除const
或volatile
限定符(非常危险),例如const_cast
.
int(x)
被标准称为函数式转换,并且在各方面都与C风格的转换相同(对于POD)[5.2.3]:
如果表达式列表是单个表达式,则类型转换表达式与相应的强制转换表达式(5.4)等效(在定义中,如果在含义中定义).