전위연산자와 후위연산자의 연산자 오버로딩
2019. 8. 22. 10:32ㆍPL/C++
전위연산자와 후위연산자를 구분하기 위해. 오버로딩 매개변수를 다르게 한다
실제 gcc에서는 전위연산자는 1 증가한 자신의 객체를 바로 반환해도 문제가 없기 때문에 const를 붙이지 않고, 후위연산자는 후위연산자 다음행에서 바뀌도록 정의하기 때문에 const 반환으로 후에 바로 생길 수 있는 값 변환을 막는다
Complex& Complex::operator++() {
re_+=1;
im_+=1;
return *this;
}
const Complex Complex::operator++(int) {
Complex tmp(*this);
this->operator++();
return tmp;
}
(++n)++은 가능
++(n++)는 불가능
'PL > C++' 카테고리의 다른 글
Default 멤버 함수 (0) | 2019.08.22 |
---|---|
explicit를 사용해서 묵시적 변환을 허용하지 않는 이유 (0) | 2019.08.22 |
클래스의 static 변수 (0) | 2019.08.22 |
const 키워드 (0) | 2019.08.21 |
임시객체 (0) | 2019.08.21 |