C ++でのコンストラクターのオーバーロードとは:特性とタイプ

公開: 2021-05-24

C ++は、業界で一般的に使用されているオブジェクト指向プログラミング言語です。 C ++は、1979年にAT&T BellLaboratoriesのBjarneStroustrupによって開発された、OOPのパイオニアプログラミング言語です。 C ++で最も頻繁に使用される機能は、その中にクラスを作成することです。 クラス内で、クラスメンバー(メソッドと変数)を作成できます。

目次

序章

コンストラクターは、オブジェクトを作成するため、または技術的にはオブジェクトのインスタンスを作成するためによく使用されます。 ほとんどのオブジェクト指向プログラミング言語では、それらもオーバーロードされています。 多くのプログラミング言語と同様に、コンストラクターの名前はクラスの名前に基づいて事前に決定されています。 単一のコンストラクターが存在する可能性があるため、これにより名前付きオブジェクトが制限されます。 複数のコンストラクターが必要なシナリオでは、オーバーロード関数を使用してそれらを実装します。

C ++では、デフォルトのコンストラクターにはパラメーターがありません。 これらは、対応するデフォルト値を持つオブジェクトメンバーからインスタンス化されます。

オブジェクト指向プログラミングで使用されるオーバーロードの概念については、公正な考えを持つことができます

コンストラクタ

コンストラクター(ctor)は、クラスベースのオブジェクト指向プログラミングでオブジェクトを作成するために使用されるプログラミング手法です。 専用サブルーチンを呼び出すことにより、新しいオブジェクトが作成されます。 これはクラスのメンバー関数であり、クラスのオブジェクトを初期化します。 このメソッドは引数を受け入れます。 提供されたパラメーターは、基本コンストラクターおよびセットメンバー変数によって使用されます。

コンストラクターの特徴

コンストラクターは、クラスの特別なメンバー関数です。 以下の理由により、汎用メンバー関数とは異なります。

  • コンストラクターメンバーはパブリックスコープです
  • クラス宣言と同じ名前です。
  • 名前では大文字と小文字が区別されます
  • コンストラクターには戻り型はありません。
  • デフォルトのコンストラクターは暗黙的に作成されます。
  • オブジェクトを作成すると、コンストラクターが自動的に呼び出されます。
  • コンストラクターは暗黙的に継承されません。
  • 通常、スコープ修飾子にはさまざまなルールがあります。

コンストラクターの種類

デフォルトのコンストラクター–パラメーターがnilで、引数がないコンストラクター。 これらは、コンパイラーによって生成された暗黙のコンストラクターです。

パラメータ化されたコンストラクタは、引数を渡すことができるコンストラクタです。 引数は、作成されたオブジェクトを初期化します。 他の関数の場合と同様に、パラメーターを追加するだけでパラメーター化されたコンストラクターを作成します。 コンストラクターの本体のパラメーターを使用して、オブジェクトを初期化します。 このタイプのコンストラクターは、通常、オーバーロードや、異なる初期値を持つオブジェクトのさまざまなデータ要素の初期化に使用されます。

コピーコンストラクター–同じクラスの別のオブジェクトを使用してオブジェクトを初期化するために使用されるメンバー関数です。 コンパイラーは、デフォルトで、オブジェクト間のメンバーごとのコピーに続いて、クラスごとにコピーコンストラクターを作成します。

C++のコンストラクタ

C ++では、オブジェクト(つまり、クラスのインスタンス)がコンストラクターを作成すると、コンストラクターが自動的に呼び出されます。

コンストラクターを指定しない場合、c ++コンパイラーはデフォルトのコンストラクターを生成します(パラメーターを予期せず、クラス名を持ちます)。

適切に記述されたコンストラクターは、結果のオブジェクトを有効な状態のままにします。

コンストラクターのオーバーロード

コンストラクターのオーバーロードは、コンストラクターが別のコンストラクターをオーバーロードする現象です。

与えられたコンストラクターは、関数のオーバーロードと同様にオーバーロードできます。

オーバーロードされたコンストラクターは、クラスの名前と同じ名前に従います。 ただし、いくつかの議論が異なります。 オブジェクトの作成中に、渡される引数のタイプによって、呼び出されるコンストラクターが決まります。

異なるパラメーターを持つ複数のコンストラクターが利用できることは、プログラミングで異なるタスクを実行するのに役立ちます。

C++でのコンストラクターのオーバーロード

C ++では、同じ名前であるが引数のリストが異なるクラスに複数のコンストラクターがあります。 C ++でのコンストラクターのオーバーロードのこの概念は、関数のオーバーロードと非常によく似ています。

通常、オブジェクトに対して異なる方法でメンバー変数を初期化するには、クラスに複数のコンストラクターを作成する必要があります。 コンストラクターの動作が異なる基準は、パラメーターの数、配置、またはパラメーターのデータ型が異なることです。

単一のクラスを使用してオブジェクトをしっかりと作成し、クラスの新しいインスタンスを返すコンストラクターは、オブジェクトを作成する業界によって抽象化されていますが、オブジェクトプールなど、さまざまなクラスまたはさまざまな割り当てスキームを使用してさまざまな方法で実行できます。

コンストラクターのオーバーロードはC++でどのように機能しますか?

以下に示す例を考えてみましょう。

このコードは、C++でのコンストラクターのオーバーロードの例を示しています

クラス「calculate」には2つのコンストラクタがあります。

  1. デフォルトのコンストラクター(パラメーターなし)
  2. 3つのパラメーターを持つコンストラクター

そして、main()には2つのオブジェクトが作成されています。

1.アウト:

作成されると、パラメーターなしでデフォルトのコンストラクターが自動的に呼び出されます。 これは、オブジェクトの作成中に、渡されるパラメーターがないためです。 したがって、first(デフォルトコンストラクタ)の定義と一致します。 これにより、メインクラスのそのオブジェクトの3つの変数すべてに0の値が割り当てられます。

2. out2:

作成されると、3つのパラメーターを使用してコンストラクターが自動的に呼び出されます。 これは、オブジェクトの作成中に1つのパラメーターのみが渡されるためです。 したがって、2番目のコンストラクターの定義と一致します。 これにより、メインクラスのそのオブジェクトの変数に3つの値(パラメーターとして渡される)が割り当てられます。

世界のトップ大学からオンラインでソフトウェアエンジニアリングコース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

結論

C ++でのコンストラクターのオーバーロードのプログラミング概念を理解することは、プログラマーやシステム設計者にとって重要なスキルです。 コンピューターおよびコンピューティング関連のプログラムのストリームに参加している学生は、 OOPの概念やコードの最適化など、スキルと技術的な信頼性を高めることができます。 upGradポータルのリソースと知識ベースは、そのような専門家が業界市場で競争するためのプログラミングの専門知識を習得することを奨励します。 さらに、専門的なネットワーキングとスキル開発を探求する機会が得られます。

フルスタックソフトウェア開発の詳細に興味がある場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクト、および割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。

プログラミングのコンストラクターとは何ですか?

プログラミングのコンストラクターは、オブジェクトを初期化し、その他の単純なタスクを実行することを主な目的とする関数です。 コンストラクターは、オブジェクト指向プログラミングに使用されます。これは、使用される一般的なプログラミングパラダイムです。 したがって、オブジェクト指向プログラムには、プロパティ、メソッド、およびイベントを持つオブジェクトが含まれています。 オブジェクトを作成するには、コンストラクターを使用する必要があり、オブジェクトを使用できるようにするには、オブジェクトをインスタンス化する必要があります。

コンストラクターのオーバーロードとは何ですか?

コンストラクターのオーバーロードとは、同じ名前のコンストラクターが複数あることを意味します。 コンストラクターは、オブジェクトの作成時に呼び出されるメソッドです。 クラス名であるすべてのコンストラクターに同じ名前を使用する必要があります。 これは、異なる数の引数を使用してコンストラクターを宣言することによって行われます。 渡す引数がない場合は、デフォルトのコンストラクターが呼び出されます。 引数が1つしかない場合は、引数を1つ取るコンストラクターが呼び出されます。 2つ以上の引数がある場合は、正確に2つ以上の引数を取るコンストラクターが呼び出されます。

コンストラクターを使用してオブジェクトを初期化する方法は?

クラスの初期化に関しては、コンストラクターが非常に重要です。 これらは、オブジェクトの作成と初期化に使用される特殊なタイプの関数です。 必要がないため、クラス内のすべてのフィールドを作成したくない場合があります。 すべてのフィールドを作成する場合は、すべてのフィールドを初期化する必要があります。 この場合、デフォルトのコンストラクターを使用して、必要に応じてフィールドを初期化します。 クラスを作成するときは、クラス内に1つ以上のコンストラクターを作成できます。 したがって、その特定のクラスのオブジェクトを作成するときに、設定する引数とともにそのコンストラクターを簡単に呼び出すことができます。 これらの引数は、コンストラクターが呼び出されるクラスのフィールドまたは属性の値として設定できます。