組み込み型にはデフォルトのコンストラクターがありますか?
デフォルトにより int() が 0 になることを示唆する記事を読んだ後に疑問が生じました。コンストラクターが存在するため、プリミティブ型には本質的にコンストラクターが欠落しているという考えが生まれます。ただし、「TC PL」のセクション 10.4.2 は、組み込み型がデフォルトのコンストラクターを所有していると主張することを暗示しています。
Bjarne Stroustrup の応答
明らかな不一致について問い合わせたとき, Bjarne Stroustrup は、組み込み型には実際のコンストラクター呼び出しがないことを明らかにしました。代わりに、コンストラクターのような表記法がコンパイラーによって解釈されます。
技術的な回答
厳密に言えば、いいえ。組み込み型にはデフォルトのコンストラクターがありません。
機能上の考慮事項
実際のコンストラクターがないにもかかわらず、組み込み型を初期化するための構文はコンストラクターの呼び出しによく似ています。初期化時に中括弧 ({}) を使用すると、整数 (int{0}) のゼロ初期化と、括弧で囲まれた式 (int a{b}) からのコピーが可能になります。
結論
組み込み型にはデフォルトのコンストラクターがありませんが、その初期化構文と動作はその存在をエミュレートします。これらはデフォルトとコピーのコンストラクターを備えているようで、初期化と値の割り当てが可能です。この疑似コンストラクター メカニズムにより、初期化が簡素化され、コードの可読性が向上します。ただし、これらの型には真のコンストラクターが欠けていることを認識することが重要です。
以上がC の組み込み型には実際にデフォルトのコンストラクターがあるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。