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 に答える