[c++] 연산자 오버로딩의 문법

연산자 재정의 문법

C++에서 연산자를 재정의하는 방법은 다음과 같습니다.

반환타입 operator 연산자기호 (매개변수목록) {
    // 연산을 수행하는 코드
}

여기서 operator는 C++ 연산자 중 하나이며, 연산자기호는 재정의하려는 연산자의 기호입니다. 매개변수목록에는 해당 연산자가 사용될 때 받게 되는 매개변수가 포함됩니다. 반환타입은 연산자가 수행된 후의 결과를 나타냅니다.

예제

아래는 + 연산자를 재정의하는 간단한 예제입니다. 이 예제는 두 개의 Complex 객체를 더하는 경우를 다룹니다.

class Complex {
private:
    int real, imag;

public:
    Complex(int r, int i) : real(r), imag(i) {}

    Complex operator+ (const Complex& obj) {
        Complex temp(0, 0);
        temp.real = real + obj.real;
        temp.imag = imag + obj.imag;
        return temp;
    }
};

위의 예제에서 operator+ 함수는 두 개의 Complex 객체를 더하는 연산을 정의합니다.

연산자 오버로딩을 잘 활용하면 사용자 정의 데이터 타입에 대해 자연스러운 연산이 가능하게 됩니다.

참고 자료