5

メモリが割り当てられた後にデフォルトのctorが何をするのか、割り当てられたメモリをどのように初期化するのか、誰かが説明できるのだろうか?

4

3 に答える 3

6

デフォルトコンストラクターは、初期化されていない組み込み型のコンストラクターを除く、すべての非静的データメンバーのデフォルトコンストラクターを呼び出します。

[2003: 12.1/5]

クラスXのデフォルトのコンストラクターは、引数なしで呼び出すことができるクラスXのコンストラクターです。クラスXのユーザー宣言コンストラクターがない場合、デフォルトのコンストラクターが暗黙的に宣言されます。

[2003: 12.1/8]

デフォルトのコンストラクターは、初期化子(8.5)なしで定義された静的または自動ストレージ期間(3.7.1、3.7.2)のクラスオブジェクトを作成するために暗黙的に呼び出されます。

于 2011-07-21T09:39:48.317 に答える
5

どの言語で質問されたのかわかりませんが、とにかく C++ と Java について答えようと思います。

C++ では、次のようになります。

  • 組み込み型 ( intfloat、ポインターなど) を初期化されていない値のままにします
  • クラスメンバーのデフォルトコンストラクターを呼び出します

Java では、すべてのクラス メンバーがデフォルト値 (0 または NULL) に初期化されていると思います。

于 2011-07-21T09:13:08.890 に答える
1

これを見てください(CおよびC ++の実装で)。

はい、実装は言語によって異なります。

于 2011-07-21T09:25:52.733 に答える