C++/따배C++ 09강 연산자 오버로딩

[C++/9.05] 증감 연산자 오버로딩

polarcompass 2021. 10. 29. 01:31
728x90

증감 연산자 작동 원리를 이 예제를 통해 확인 할 수 있다.

#include<iostream>
using namespace std;

class Digit
{
private:
    int m_digit;
public:
    Digit(int digit = 0)
        : m_digit(digit)
    {}

    // prefix
    Digit &operator ++ ()
    {
        ++m_digit;
        return *this;
    }

    // postfix
    Digit operator ++ (int)
    {
        Digit tmp{m_digit};
        ++(*this);
        return tmp;
    }

    friend ostream &operator << (ostream &out, const Digit &d)
    {
        out << d.m_digit;
        return out;
    }
};

int main()
{
    Digit d{5};

    // prefix
    cout << ++d << endl;
    cout << d << endl;

    // postfix
    cout << d++ << endl;
    cout << d << endl;

    return 0;
}
728x90