Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 铸造:内置类型的btw.T(值)和(T)值有什么区别?_C++_Casting - Fatal编程技术网

C++ 铸造:内置类型的btw.T(值)和(T)值有什么区别?

C++ 铸造:内置类型的btw.T(值)和(T)值有什么区别?,c++,casting,C++,Casting,可能的重复项: C++中,当显式地将一个内置类型转换为另一个内置类型时,可以编写: int x = (int)c; int x = int(c); int d = (double)f; int d = double(f); 我知道(T)v是C风格的强制转换,我认为另一种语法在技术上不是强制转换,但是另一种语法叫什么,它的语义是什么?(在哪里使用哪个?T(value)实际上是类型T的初始化,因为它是一个初始化,如果value和T的类型是可转换的,则可以进行隐式类型转换。如果T是类对象,则调

可能的重复项:

C++中,当显式地将一个内置类型转换为另一个内置类型时,可以编写:

int x = (int)c;
int x = int(c);
int d = (double)f;
int d = double(f);
我知道
(T)v
是C风格的强制转换,我认为另一种语法在技术上不是强制转换,但是另一种语法叫什么,它的语义是什么?(在哪里使用哪个?

T(value)
实际上是类型
T
的初始化,因为它是一个初始化,如果
value
T
的类型是可转换的,则可以进行隐式类型转换。如果
T
是类对象,则调用它的一个构造函数,要么调用接受单个值且
T
value
为隐式可转换类型的默认构造函数,要么调用具有两个类型隐式可转换相同条件的副本构造函数<正如您所注意到的,code>(T)value,是从
value
类型转换为
T
类型的C样式转换。不过,如果你真的这么做了,他们最终都会在幕后做同样的事情

T var1 = T(value);
T var2 = (T)value;

您将得到完全相同的结果,即创建/返回类型为
T
的对象,该对象可用于初始化类型为
T

的l值。Tomalak:是的,我的错;我抄错了题#。。。