반응형
연산자 재정의 활용
- 전위형(++n), 후위형(n++) 연산자
- 전위형, 후위형 모두 n.operator++ 연산자 재정의로 구현
- 전위형은 자신을 참조로 리턴하여 구현
- Integer& operator++()
- 후위형은 구분을 위해 인자로 int를 받고 리턴값으로 증감을 반영하지 않기 위해 값으로 리턴
- 후위형은 내부에서 전위형을 호출(재활용)하여 구현
- Integer operator++(int)
class Integer
{
int value;
public:
Integer(int n = 0) : value(n) {}
void print() const
{
std::cout << value << std::endl;
}
// 전위형 - 값리턴.
Integer& operator++()
{
++value;
return *this;
}
// 후위형 - 값리턴.
Integer operator++(int)
{
Integer temp = *this;
++(*this); // 전위형 코드를 호출하여 재활용
return temp;
}
};
int main()
{
Integer n1 = 2;
Integer n2 = ++n1; // 전위 연산자 return : 3
Integer n3 = 2;
Integer n4 = n3++; // 후위 연산자 return : 2
n2.print();
n4.print();
}
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
C++ 대입 연산자(assignment) (0) | 2019.05.10 |
---|---|
C++ 스마트 포인터(Smart Pointer) (0) | 2019.05.10 |
C++ 함수 객체(Function Object) (0) | 2019.05.10 |
C++ 연산자 재정의 - cout, endl 원리 (2) | 2019.05.08 |
C++ 연산자 재정의 - 기본 개념 (0) | 2019.05.08 |