[c++] 부호 연산자의 오버로딩
C++에서는 부호 연산자를 오버로딩하여 사용자 정의 데이터 타입에 대한 새로운 의미를 부여할 수 있습니다. 부호 연산자는 단항 연산자로 다음과 같이 사용됩니다.
+x; // 양수로 변환
-x; // 음수로 변환
이러한 부호 연산자를 오버로딩하면 사용자가 정의한 클래스에 대해 해당 연산을 재정의할 수 있습니다. 아래의 예시를 통해 자세히 살펴보겠습니다.
부호 연산자의 오버로딩 예시
아래의 코드는 부호 연산자를 오버로딩하여 사용자 정의 클래스에서의 동작을 보여줍니다.
#include <iostream>
class Number {
private:
int value;
public:
Number(int val) : value(val) {}
// 부호 연산자 오버로딩
Number operator+() {
return Number(abs(value));
}
// 값 출력
void display() {
std::cout << "Value: " << value << std::endl;
}
};
int main() {
Number num1(10);
Number num2(-5);
+num1; // 양수로 변환
-num2; // 음수로 변환
num1.display();
num2.display();
return 0;
}
이 예시에서는 Number
클래스에서 부호 연산자를 오버로딩하여, 해당 값의 절댓값을 반환하도록 재정의하였습니다.
C++에서 부호 연산자를 오버로딩함으로써 사용자가 정의한 클래스에 대해 새로운 동작을 추가할 수 있습니다. 이를 통해 코드의 가독성과 유지보수성을 높일 수 있습니다.
이상으로 C++ 부호 연산자의 오버로딩에 대해 알아보았습니다.