我从未见过以下演员语法:
int var = int(1.0);
int是一个基类型,所以我想知道:它是否等同于
int var =(int)1.0;
答案 0 :(得分:4)
这两个符号是等价的(在原始类型的情况下)。请注意:请在c++
中使用static_cast而不是C风格的转换。这里没有太大的区别,但这是一个坏习惯。
对于复杂类型,第一个将调用构造函数,而第二个调用构造函数,因此它们可能具有完全不同的逻辑。
答案 1 :(得分:1)
第一个调用是构造函数调用..第二个调用是强制转换。它们基本相同。
答案 2 :(得分:1)
两种解决方案在语法上都是正确的,并且是显式类型转换的等效方法。 http://www.cplusplus.com/doc/tutorial/typecasting/