C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でのコピーコンストラクタと代入演算子の違い


この投稿では、C++のコピーコンストラクターと代入演算子の違いを理解します。

コピーコンストラクタ

  • オーバーロードされたコンストラクターです。

  • 新しいオブジェクトを既存のオブジェクトデータ/値で初期化します。

  • これは、既存のオブジェクトを使用して新しいオブジェクトを作成するときに使用されます。

  • これらのオブジェクトは両方とも別々のメモリ位置に保存されます。

  • クラス内にコピーコンストラクターが定義されていない場合、コンパイラーは独自にコピーコンストラクターを提供します。

代入演算子

  • オペレーターです。

  • あるオブジェクトの値を別のオブジェクトに割り当てます。これらのオブジェクトは両方ともすでに存在します。

  • 既存のオブジェクトを新しいオブジェクトに割り当てる必要がある場合に使用されます。

  • このオブジェクトを格納するために単一のメモリ位置が使用されます。

  • ただし、このオブジェクトの場所を指すために使用される参照変数は複数あります。

  • この演算子がオーバーロードされていない場合、ビット単位のコピーが作成されます。


  1. C ++のドット(。)演算子と->の違いは何ですか?

    ドットと矢印の演算子は、どちらもC++でクラスのメンバーにアクセスするために使用されます。それらはさまざまなシナリオで使用されます。 C ++では、class、struct、またはunionとして宣言された型は、「クラス型」と見なされます。したがって、以下は3つすべてを指します。 a.bは、bがオブジェクトのメンバー(またはオブジェクトへの参照[1])である場合にのみ使用されます。したがって、a.bの場合、aは常にクラスの実際のオブジェクト(またはオブジェクトへの参照)になります。 a→bは基本的に(* a).bの省略表記です。つまり、aがオブジェクトへのポインタである場合、a→bはポイ

  2. !==と==の違い! PHPの演算子

    !==比較演算子 !==演算子は、型チェックを使用して2つのオブジェクトの不等式をチェックします。データ型を変換せず、型付きチェックを行います。たとえば、1!==1の結果はtrueになります。 ==!比較演算子 ==!演算子は2つの演算子の組み合わせであり、==(!operands)と書くことができます。 例 次の例は、「!==」と「==!」の使用法を示しています。演算子。 <!DOCTYPE html> <html> <head>    <title>PHP Example</title> </hea