工作分派
指派運算子 (=) 是,嚴格說來,二元運算子。 其宣告為與相同二元的運算子,除了下列例外:
它必須是一個非靜態成員函式。 不**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;