2

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

int a(32);

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

4

2 回答 2

3

最好的描述如下:

C++03 8.5 初始化器
第 12 和 13 段:

.......
在 new 表达式 (5.3.4)、static_cast 表达式 (5.2.9)、函数符号类型转换 (5.2.3) 以及基类和成员初始化程序 (12.6.2) 中发生的初始化被调用
直接初始化,等价于形式

Tx(a);

如果 T 是标量类型,则声明形式为

T x = { a };

相当于

T x = a;

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

于 2012-06-01T02:46:28.190 回答
2

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

于 2012-06-01T02:42:39.557 回答