分配

赋值运算符 (=) 是,严格地说,二元运算符。 其声明与其他二元运算符相同,但有以下例外:

  • 它必须是非静态成员函数。 operator= 不能声明为非成员函数。

  • 它不受派生类继承。

  • ,如果不存在任何继承,默认 operator= 函数可由类类型的编译器生成。 (有关默认的更多信息 operator= 函数,请参见 成员分配和初始化。)

下面的示例演示如何声明赋值运算符:

// 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;

请参见

参考

运算符重载