1

我从未见过以下强制转换语法:

int var = int(1.0);

int 是一个基本类型,所以我想知道:它是否等同于

int var = (int)1.0;

?

4

3 回答 3

4

这两个符号是等价的(在原始类型的情况下)。只是一个旁注:请使用 static_castc++代替 C 风格的转换。在这里没有太大区别,但这是一个坏习惯。

对于复杂类型,第一个将调用构造函数,而第二个将调用强制转换运算符,因此它们可能具有完全不同的逻辑。

于 2013-02-27T14:30:54.093 回答
1

第一个调用是构造函数调用。第二个是强制转换。它们基本相同。

于 2013-02-27T14:31:54.827 回答
1

这两种解决方案在语法上都是正确的,并且是显式类型转换的等效方法。 http://www.cplusplus.com/doc/tutorial/typecasting/

于 2013-02-27T14:39:50.477 回答