Cのデフォルトコンストラクターとは何ですか?

質問者:Nistor Irani |最終更新日:2020年6月18日
カテゴリ:テクノロジーおよびコンピューティングプログラミング言語
4.6 / 5 (219ビュー。16投票)
デフォルトのコンストラクター(C ++のみ)
デフォルトのコンストラクターは、パラメーターがないか、パラメーターがある場合はすべてのパラメーターにデフォルト値があるコンストラクターです。クラスAのユーザー定義コンストラクターが存在せず、必要な場合、コンパイラーはデフォルトのパラメーターなしコンストラクターA :: A()を暗黙的に宣言します

その上、例のあるデフォルトのコンストラクターは何ですか?

デフォルトのコンストラクターの例上記のプログラムで次のようなオブジェクトを作成しようとしたとします。NoteBookobj= new NoteBook(12);上記のではint引数を持つコンストラクターがなかったため、NoteBook(12)は単一のint引数を持つパラメーター化されたコンストラクターを呼び出すため、コンパイルエラーが発生します。

また、デフォルト以外のコンストラクターとは何ですか? JavaとC#の両方で、「デフォルトコンストラクター」は、クラスにコンストラクターが定義されていない場合にコンパイラーによって自動的に生成されるnullaryコンストラクターを指します。パラメーターをとらないプログラマー定義のコンストラクターは、C#ではデフォルトコンストラクターとも呼ばれますが、Javaでは呼び出されません。

また、C ++でデフォルトのコンストラクターが必要なのはなぜですか?

コンパイラーは、プログラマーによって提供されていない場合、デフォルトのコンストラクターを暗黙的に宣言し、必要なときにそれを定義します。クラス内部の特定の初期化を行うには、コンパイラー定義のデフォルトコンストラクターが必要です。コンパイラは、基本クラス/埋め込みオブジェクトのデフォルトコンストラクタを呼び出すコードを挿入する必要があります。

なぜコンストラクターが使われるのですか?

コンストラクターの目的はクラスのオブジェクトを初期化することですが、メソッドの目的はJavaコードを実行してタスクを実行することです。コンストラクターは抽象化、最終、静的、同期化することはできませんが、メソッドは可能です。

29関連する質問の回答が見つかりました

コンストラクターは継承できますか?

コンストラクターはクラスのメンバーではなく、メンバーのみが継承されます。コンストラクターを継承することはできません。つまり、スーパークラスの1つのコンストラクターを使用してサブクラスのインスタンスを作成することはできません。

コンストラクターをプライベートにすることはできますか?

はい、クラスプライベートコンストラクターを持つことできます。他のクラスからコンストラクターにアクセスすることを禁止し、定義されたクラス内でコンストラクターにアクセスできるようにする必要があります。シングルトンは、クラスのインスタンスを1つだけ作成できるデザインパターンであり、これプライベートコンストラクターを使用して実現できます。

コンストラクターとその型とは何ですか?

コンストラクターは、戻り型のない特殊なの関数です。クラス内でメソッドを定義し、コンストラクターもクラス内で定義されます。クラスのオブジェクトを作成すると、コンストラクターが自動的に呼び出されます。コンストラクターを明示的に呼び出すことはできません。コンストラクター種類を見てみましょう。

なぜデフォルトのコンストラクターが必要なのですか?

Javaのデフォルトコンストラクタの目的は何ですか?パラメーターのないコンストラクターは、デフォルトコンストラクターと呼ばれますコンストラクターは主に、インスタンス変数を初期化するために使用されます。具体的には、デフォルトのコンストラクターを使用して、インスタンス変数はすべてのオブジェクトの固定値で初期化されます。

クラスはいくつのコンストラクターを持つことができますか?

1つのクラスに65535のコンストラクター含めることができます(Oracleのドキュメントによる)。ただし、これを念頭に置いてください。私たちは、CONSTRUCTORのオーバーロード(https://beginnersbook.com/2013/05/コンストラクタ-overloading /)することでこれを実現しています。多くのコンストラクター作成できますが、署名は異なります。

コンストラクターのオーバーロードとはどういう意味ですか?

進む前に、コンストラクターのオーバーロードとは何か、なぜそれを行うの理解しましょう。コンストラクターのオーバーロードは、各コンストラクターが異なるタスクを実行するように、異なるパラメーターリストを持つ複数のコンストラクターを持つという概念です。たとえば、Vectorクラスには4種類のコンストラクタがあります。

パラメータ化されたコンストラクタとは何ですか?

特定の数のパラメーター(引数)を持つコンストラクターは、パラメーター化されたコンストラクターと呼ばれますパラメータ化されたコンストラクタは、オブジェクトに異なる値を提供するために使用されます。同じ値を提供することもできます。

コンストラクターは必要ですか?

コンストラクターは、クラスが別のクラスによってインスタンス化されるために必要な特別な関数です。フィールドをプライベートにし、他のクラスから直接アクセスできないため、コンストラクター必要になります。そのため、コンストラクターを使用してクラスのオブジェクトをインスタンス化するときに、データを渡します。

デフォルトのコンストラクターをどのように呼び出しますか?

new()キーワードを使用してオブジェクトが作成されるたびに、少なくとも1つのコンストラクターが呼び出されます。クラスで使用可能なコンストラクターがない場合デフォルトのコンストラクターを呼び出します彼らです:
  1. コンストラクターによる。
  2. あるオブジェクトの値を別のオブジェクトに割り当てる。
  3. Objectクラスのclone()メソッドによる。

OOPのコンストラクターとは何ですか?

コンストラクターは、その型のオブジェクトを初期化するオブジェクト指向プログラミングのクラスまたは構造体の特別なメソッドです。コンストラクターは、通常はクラスと同じ名前のインスタンスメソッドであり、オブジェクトのメンバーの値をデフォルト値またはユーザー定義値に設定するために使用できます。

C ++ではコンストラクターは必須ですか?

クラスのオブジェクトを作成するときにC ++クラスコンストラクターが呼び出されることはわかっています。クラスがそのデータメンバーを初期化する必要がない場合、またはデータメンバーが含まれていない場合は、空のコンストラクターを明示的に記述する必要はありません。クラスオブジェクトの作成では、暗黙的に呼び出されるデフォルトのコンストラクタで十分です。

C ++のデフォルトコンストラクターとは何ですか?

最終の(C ++ 11)[編集]既定のコンストラクタは、引数なし(いずれかの空のパラメータリストを有する、またはすべてのパラメータのために提供されるデフォルト引数で定義される)と呼ぶことができるコンストラクタです。パブリックデフォルトコンストラクターを持つタイプはDefaultConstructibleです。

C ++のデフォルトコンストラクターとは何ですか?

デフォルトのコンストラクターデフォルトのコンストラクターは、引数をとらないコンストラクターです。パラメータはありません。注:コンストラクターを明示的に定義しなくても、コンパイラーはデフォルトのコンストラクターを暗黙的に自動的に提供します

すべてのクラスにデフォルトのコンストラクターがありますか?

はい、Javaで作成するすべてのクラスには、パラメーターのないデフォルトのコンストラクターがあります。つまり、その後は、パラメーター化されたコンストラクターを使用してそのクラスのオブジェクトのみを作成でき、パラメーター化されていないコンストラクターを使用するには、そのコンストラクターを作成する必要があります。

コンストラクターに戻り型がないのはなぜですか?

したがって、コンストラクターが値を返さない理由は、コンストラクターがコードによって直接呼び出されるのではなく、実行時にメモリ割り当てとオブジェクト初期化コードによって呼び出されるためです。その戻り値(マシンコードにコンパイルされたときに実際に1つある場合)は、ユーザーには不透明です。したがって、指定することはできません。

コンストラクターには戻り型がありますか?

Javaのコンストラクタは、明示的に何も返しません。それらにreturnタイプがなく、voidでさえありません。ただし、コンストラクターの定義が進むにつれて、クラスのオブジェクトを初期化するために使用されます。したがって、暗黙的に、コンストラクターを持つクラスの現在のインスタンスを返します。