[c++] 연산자 오버로딩을 통한 특수한 동작 정의

C++에서는 클래스의 객체가 특정 연산자를 사용할 때 수행되는 동작을 재정의할 수 있습니다. 이를 연산자 오버로딩(Operator overloading)이라고 합니다. 연산자 오버로딩을 사용하면 사용자 정의 클래스의 객체를 일반적인 데이터 유형처럼 사용할 수 있게 됩니다.

class Complex {
public:
    int real, imaginary;
    Complex operator+(const Complex& c) {
        Complex temp;
        temp.real = real + c.real;
        temp.imaginary = imaginary + c.imaginary;
        return temp;
    }
};

int main() {
    Complex a, b, c;
    // ...
    c = a + b; // 연산자 + 를 사용하여 Complex 객체끼리의 덧셈 연산 수행
}

위 예제에서 + 연산자를 재정의하여 두 Complex 객체를 더하는 특수한 동작을 정의했습니다. 이제 Complex 객체 간의 덧셈 연산을 수행할 때 사용하는 + 연산자가 정의한 동작으로 대체될 것입니다.

연산자 오버로딩을 통해 사용자가 직관적이고 유연한 코드를 작성할 수 있도록 도와줍니다. 그러나 오버로딩된 연산자의 의미가 명확하고 일관되게 유지되어야 합니다.

더 자세한 내용은 C++ 연산자 오버로딩 문서를 참조하세요.