int(x)做什么?

时间:2014-01-25 09:44:33

标签: c++

我已经看过这些,看起来似乎是c ++代码中的功能,但我不知道他们做了什么或他们是什么,他们似乎做类似的东西,但他们看起来不像类型转换,那么它们是什么?

他们看起来像这样:int(x)其中x是一些数字输入,我一直在网上搜索但我还没有找到任何关于他们的信息(可能因为我不知道他们叫什么。

任何帮助?

3 个答案:

答案 0 :(得分:5)

这称为“功能表示法”,它是显式类型转换(“强制转换”)的一种形式。 C ++ 11,5.2.3:

  

5.2.3显式类型转换(功能表示法)

     
      
  1. simple-type-specifier(7.1.6.2)或typename-specifier(14.6)后跟带括号的expression-list,在给定表达式列表的情况下构造指定类型的值。如果表达式列表是单个表达式,则类型转换表达式与相应的强制转换表达式(5.4)等效(在定义中,如果在含义中定义)。如果指定的类型是类类型,则类类型应完整。如果表达式列表指定多个单独的值,则类型应为具有适当声明的构造函数的类(8.5,12.1),并且表达式T(x1,x2,...)与声明T t等效。 (x1,x2,......);对于一些发明的临时变量t,结果是t的值作为prvalue。
  2.   

答案 1 :(得分:4)

int(x)functional notation for type-casting

  

C ++是一种强类型语言。许多转换,特别是那些暗示对值的不同解释的转换,需要显式转换,在C ++中称为类型转换。泛型类型转换有两种主要的语法: functional 和c-like:

     

这些通用形式的类型转换功能足以满足基本数据类型的大多数需求。

示例:

double x = 10.3;
int y;
y = int (x);    // functional notation
y = (int) x;    // c-like cast notation 

查看what is the difference between c-like casting & functional casting?了解详情。

答案 2 :(得分:3)

这是类型转换运算符的替代语法,使其看起来像复制构造函数语法,因此在复制构造函数所在的位置在语法上是合适的。 int(x)(int)x具有相同的效果。