代入演算子 = のオーバーロード(C++)
代入演算子 = ( ) は、静的でないメンバ関数を宣言することによってオーバーロードできます。たとえば、次のようになります。
class String { . . . String& operator = (String& str); . . . String (String&); ~String(); }
このコードでは、String::operator =()
を適切に定義することによって、通常の意味での文字列の代入 str1 = str2
を可能にしています。他の演算子関数とは異なり、代入演算子関数は派生クラスに継承させることはできません。任意のクラス X に対して、ユーザー定義の演算子 = が存在しない場合は、デフォルトでは、演算子 = は、クラス X のメンバのメンバごとの代入として定義されます。
X& X::operator = (const X& source) { // memberwise assignment }