組み込み型にはコンストラクターがありますか?
一時的な int の値が 0 に初期化されるとき、それは int() 呼び出しによるものですか?デフォルトのコンストラクター?組み込み型にはコンストラクターがないため、これはよくある誤解です。
値の初期化とデフォルト コンストラクター
値の初期化は、比較的最近の概念であり、そのタイプに適切な値を持つ一時オブジェクト。組み込み型の場合、この値は整数の 0 です。
TC PL の声明
TC PL のセクション 10.4.2 では、組み込み型にもデフォルトがあると記載されています。コンストラクター。しかし、この記述は、C 98 および C 03 の文脈では間違いなく間違っています。
Bjarne Stroustrup 氏の説明
Bjarne Stroustrup 氏は、個人的に連絡を取ったところ、構築されたものであると考えていると明らかにしました。実際のコンストラクター呼び出しがないにもかかわらず、概念的な意味でのコンストラクターを持つ型。この概念化は、値の初期化などのコンストラクターのような動作に基づいています。
結論
技術的には、組み込み型にはコンストラクターがありません。ただし、それらを初期化するために使用される構文 (例: int{5}、int{}) はコンストラクターの構文と同じです。したがって、実際的な目的では、組み込み型には、値の初期化中に値を適切に初期化するデフォルトのコンストラクターがあると考えるのが合理的です。
以上がC の組み込み型にはコンストラクターがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。