: 증감목적으로 사용할 때는 전위 연산자를 사용하자.
1) 임시 객체를 반환함.
2) 그리고 원본의 데이터를 증가해야 함.
3) 연속적인 증감을 못하게 하기 위해서 const 를 선언해야 함.
-> 이유 : const 선언으로 외부에서의 값 증감을 못하게 하자.
✨- 추가
: 현재 구성한 내용으로 코드를 만들게 되면,
int n=4;
n++++; 은 불가능하지만,
Point p;
p++++; 은 가능함.
이를 막기 위해서
3) const반환을 하기도 함.
: 원본의 값이 그대로 증가하므로, -> 참조 반환함.
: 후위형은 임시객체를 만들기 때문이고, 전위는 참조반환이므로.
: 구글링이든, 선배왈이든 전위연산자를 사용해!
라는 것을 들었는데 그 이유에 대해서 알아보자.
✨1) 반환값에 유의해야함. -> 참조 반환타입으로 만들어야 함.
c++의 규칙, 값반환은 복사를 발생시킴.
확인해보기
Point p;
++++p; 를 해보아라.
: primitive를 후위형 하는 경우에 대해서 생각을 해보자.
확인해보기
int n = 4;
cout << n++ << endl;
cout << n << endl;
출력
4
5
가 나옴.
이를 통해서
: 전위, 후위 증가연산자를 만들어라.
-> 어떻게 구별하는지 확인하는 방법.
:: ++++obj , obj++++; 을 하자!!
위의 결과를 보면,
전위의 경우는 원본이 2번 증가하는 것을 확인할 수 있고,
후의는 임시객체 반환되므로, 1번만 증가하는 것을 확인할 수 있음.
primitive type의 경우는
: 후위연산자에서 2번 하는 것을 차단하고 있움!