构造函数初始化CPP中的原始数据类型

时间:2012-06-01 02:34:38

标签: c++ initialization

在cpp中,我们可以将原始数据类型初始化为

int a(32);

这个构造函数的初始化是如何工作的? C ++会将其视为对象吗?

2 个答案:

答案 0 :(得分:2)

这就是所谓的直接初始化。在C ++中,整数不是对象,您在此处编写的表达式不是构造函数。它只是将a初始化为32的值。

答案 1 :(得分:2)

最佳描述如下:

C ++ 03 8.5初始化程序
Para 12& 13:

  

.......
  新表达式(5.3.4),static_cast表达式(5.2.9),功能表示法类型转换(5.2.3)以及基本和成员初始化程序(12.6.2)中发生的初始化称为
  直接初始化,等同于表单

     

T x(a);

     

如果T是标量类型,则表示

形式的声明
T x = { a };
     

相当于

T x = a;

在问题中,类型为int,这是标量类型。