[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++ 연산자 오버로딩 문서를 참조하세요.