代入演算子 = のオーバーロード(C++)

提供: RAD Studio
移動先: 案内検索

演算子関数のオーバーロードの概要:インデックス への移動


代入演算子 = ( ) は、静的でないメンバ関数を宣言することによってオーバーロードできます。たとえば、次のようになります。

class String {
     .
     .
     .
   String& operator = (String& str);
     .
     .
     .
   String (String&);
   ~String();
}

このコードでは、String::operator =() を適切に定義することによって、通常の意味での文字列の代入 str1 = str2 を可能にしています。他の演算子関数とは異なり、代入演算子関数は派生クラスに継承させることはできません。任意のクラス X に対して、ユーザー定義の演算子 = が存在しない場合は、デフォルトでは、演算子 = は、クラス X のメンバのメンバごとの代入として定義されます。

X& X::operator = (const X& source)
{
   // memberwise assignment
}

関連項目