답변 2
0
실행은 되는데, m_digit의 값이 ++m_digit; 할 때처럼 정상적으로 올라가지 않습니다.
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
class Digit
{
private:
int m_digit;
public:
Digit(int digit = 0) : m_digit(digit) {}
Digit & operator ++ () //전위 연산자
{
//++(m_digit);
++(*this);
return *this;
}
Digit operator ++ (int) //후위 연산자
{
Digit temp(m_digit);
++(*this);
return temp;
}
friend ostream & operator << (ostream &out, const Digit &d)
{
out << d.m_digit;
return out;
}
};
int main()
{
Digit d(5);
cout << ++d << endl;
cout << d << endl;
cout << d++ << endl;
cout << d << endl;
return 0;
}
0