隐式转换和显式转换之间的区别

sap*_*Pro 10 c++ java implicit-conversion explicit-conversion

可能重复:
隐式VS显式转换

"隐式转换"和"显式转换"之间有什么区别?Java和C++的区别是什么?

Ste*_*n C 22

显式转换是指使用某种语法告诉程序进行转换的地方.例如(在Java中):

int i = 999999999;
byte b = (byte) i;  // The type cast causes an explicit conversion
b = i;              // Compilation error!!  No implicit conversion here.
Run Code Online (Sandbox Code Playgroud)

隐式转换是在没有任何语法的情况下进行转换的地方.例如(在Java中):

int i = 999999999;
float f = i;    // An implicit conversion is performed here
Run Code Online (Sandbox Code Playgroud)

应该注意的是(在Java中)涉及原始类型的转换通常涉及一些表示的改变,并且可能导致精度损失或信息丢失.相比之下,涉及引用类型(仅)的转换不会更改基本表示.


Java和C++的区别是什么?

我不这么认为.显然,可用的转换将是不同的,但"隐式"和"显式"之间的区别将是相同的.(注意:我不是C++语言的专家......但是这些单词在英语中具有自然意义,我无法想象C++规范在矛盾的意义上使用它们.)