c ++中扩大和缩小之间的区别?

bun*_*nty 1 c++ oop

c ++中的扩大缩小有什么区别?什么是铸造和什么类型的铸造?

Kei*_*thS 6

这是一般的铸造,而不是C++特定的.

"拓宽"强制转换是从一种类型到另一种类型的强制转换,其中"目标"类型具有比"源"更大的范围或精度(例如,int到long,float到double)."缩小"演员阵容正好相反(长到整数).缩小的演员引入了溢出的可能性.

内置基元之间的扩展转换是隐式的,这意味着您不必使用转换运算符指定新类型,除非您希望在计算期间将类型视为更宽的类型.默认情况下,类型被转换为在二进制表达式或赋值的变量一侧使用的最宽实际类型,而不计算另一方的任何类型).

另一方面,必须显式地强制缩小强制转换,并且必须处理溢出异常,除非将代码标记为未检查溢出(C#中的关键字是unchecked;我不知道它是否对于该语言是唯一的)

  • C++ 转换是 C++ 特有的,而标准扩展(例如,将“short”乘以“long”)在 C 或 C++ 中并不称为转换。你的最后一段完全不适用于C++。 (2认同)