[c++] 사용자 정의 클래스에서의 연산자 오버로딩
C++에서는 사용자 정의 클래스에서 연산자를 오버로딩하여 클래스 객체 간의 연산을 지원할 수 있습니다. 이러한 기능을 통해 사용자가 정의한 클래스에 대해 기존 연산자를 적용할 수 있으며, 코드의 가독성을 향상시키고 유지보수를 간편하게 할 수 있습니다.
연산자 오버로딩의 기본 문법
다음은 연산자 오버로딩의 기본적인 문법입니다. 아래 예시에서는 덧셈 연산자를 오버로딩하는 방법을 보여줍니다.
class MyNumber {
public:
int value;
MyNumber(int v) : value(v) {}
MyNumber operator+(const MyNumber& other) {
MyNumber result(0);
result.value = this->value + other.value;
return result;
}
};
위 예시에서 operator+
함수는 MyNumber
클래스에 대한 덧셈 연산자를 오버로딩하는 함수입니다. 이 때 this
는 현재 객체를 가리키고, other
는 연산자가 적용되는 다른 객체를 가리킵니다.
예시
다음은 사용자 정의 클래스에서 연산자 오버로딩을 사용하는 간단한 예시입니다.
#include <iostream>
class MyNumber {
public:
int value;
MyNumber(int v) : value(v) {}
MyNumber operator+(const MyNumber& other) {
MyNumber result(0);
result.value = this->value + other.value;
return result;
}
};
int main() {
MyNumber num1(5);
MyNumber num2(10);
MyNumber sum = num1 + num2;
std::cout << "Sum: " << sum.value << std::endl;
return 0;
}
위 예시에서 MyNumber
클래스에서 덧셈 연산자를 오버로딩하여 두 객체를 더한 결과를 출력하는 방법을 보여줍니다.
연산자 오버로딩은 C++에서 매우 강력한 기능으로, 클래스의 사용법을 훨씬 더 유연하고 직관적으로 만듭니다. 올바르게 사용된 연산자 오버로딩은 코드의 가독성을 향상시키고 유지보수를 더 쉽게 만듭니다.
더 많은 자세한 정보는 아래 C++ 공식 문서를 참고하시기 바랍니다.
참고: C++ 연산자 오버로딩 문서