할당
할당 연산자(=)는 엄밀하게 말하면 이항 연산자입니다. 할당 연산자의 선언은 다음을 제외하고 다른 모든 이항 연산자와 동일합니다.
비정적 멤버 함수여야 합니다. **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;