C ++演员语法

时间:2013-02-27 14:30:01

标签: c++ casting

我从未见过以下演员语法:

  

int var = int(1.0);

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

  

int var =(int)1.0;

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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