[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++ 부호 연산자의 오버로딩에 대해 알아보았습니다.

참고 자료