代入
代入演算子 ()= は厳密には二項演算子です。この宣言は次の例外があります。他の二項演算子と同じです :
これは静的メンバー関数である必要があります。operator= は以外のメンバー関数として宣言することはできません。
また派生クラスに継承されません。
既定の operator= の関数はクラス型のコンパイラで見つからない場合は生成できます。(既定値の詳細についてはoperator= 関数はMemberwise の割り当てと初期化 を参照してください)。
次の例では代入演算子を宣言する方法を示しています :
// assignment.cpp
class Point
{
public:
Point &operator=( Point & ); // Right side is the argument.
int _x, _y;
};
// Define assignment operator.
Point &Point::operator=( Point &ptRHS )
{
_x = ptRHS._x;
_y = ptRHS._y;
return *this; // Assignment operator returns left side.
}
int main()
{
}
指定された引数が式の右側にあることに注意してください。演算子と代入の完了後に左側の値を返す代入演算子の動作を保持するオブジェクトを返します。これはステートメントを記述います :
pt1 = pt2 = pt3;