cpp では、プリミティブ データ型を次のように初期化できます。
int a(32);
このコンストラクターの初期化はどのように機能しますか? C++ はそれをオブジェクトとして扱いますか?
cpp では、プリミティブ データ型を次のように初期化できます。
int a(32);
このコンストラクターの初期化はどのように機能しますか? C++ はそれをオブジェクトとして扱いますか?
これについては、以下で最もよく説明されています。
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
では、型はスカラー型です。
これは、いわゆる直接初期化です。C++ では、整数はオブジェクトではなく、ここに記述する式はコンストラクターではありません。a を 32 の値に初期化するだけです。