コピーコンストラクターとは
コピーコンストラクターは、C ++およびC ++の影響を受ける他の言語の特別な関数であり、コーディングオブジェクトをコピーします。 プログラマーは、コピーコンストラクター宣言を追加し、オブジェクトを参照することでこれを行います。 主に、これは時間を節約することでプログラマーに利益をもたらしますが、プログラマーがオブジェクトのコーディングを誤って入力しないことも保証します。 コピーを作成するときは、異なるメモリポインタを使用する必要があります。そうでない場合、元のオブジェクトが指しているのと同じセクションを指します。 コピーコンストラクターを使用する主な欠点の1つは、それらが独立して機能できないことです。 元のオブジェクトが消去されると、コピーも消去されます。
プログラマーがコピーコンストラクターを使用する場合、コードに既にリストされているオブジェクトをコピーするようにコードに伝えています。 これを行うには、プログラマーは最初に宣言を使用して、コピー機能を実行するようコーディングに指示する必要があります。 また、プログラマは別のオブジェクトを参照する必要があるため、オブジェクトは既に構築されている必要があります。そうしないと、コピーを実行する方法がありません。
コピーコンストラクターを使用する主な利点は、時間を節約できることです。 同じ関数を再入力してコーディングし直す代わりに、プログラマは参照を追加するだけでオブジェクトを準備できます。 これには、一貫した正確なコーディングのもう1つの隠れた利点があります。 元のオブジェクトが正しくコーディングされている限り、コピーされたオブジェクトにも正しいコーディングが適用されます。 これらの利点は両方とも複雑なオブジェクトで最も顕著ですが、プログラマーは単純なオブジェクトをコピーすることもできます。
C ++言語では、多くの関数にメモリポインターが必要です。 これにより、特定の情報を得るためにメモリ内のどこを検索するか、またはデータをどこに保存できるかを関数に正確に伝えます。 プログラマは、コピーコンストラクターを使用するときに新しいメモリポインターを指定する必要があります。 それ以外の場合、2つのオブジェクトは同じメモリ空間を使用します。 表面的には、これは悪くはないように見えるかもしれませんが、矛盾を引き起こす可能性があります。 たとえば、両方のオブジェクトが同じポインターを共有し、コピーされたオブジェクトがクレジットカードアプリケーションを送信するために作成されている間に1つのオブジェクトがローンアプリケーションを送信するために使用される場合、すべてのクレジットカードアプリケーションはローンアプリケーションと共に保存されます。
コピーコンストラクタオブジェクトは独立して機能できないため、プログラマはオブジェクトの消去に注意する必要があります。 プログラマが元のオブジェクトを消去すると、コピーされたオブジェクトには参照するものがなくなります。 参照するコードがないと、コピーされたオブジェクトはそのタスクを実行できず、役に立たなくなります。