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