전위연산자와 후위연산자의 연산자 오버로딩

2019. 8. 22. 10:32PL/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