반응형
전위 연산자와 후위 연산자가 똑같이 "operator++() {}" "operator--() {}" 형태인데 어떻게 두 개를 구분할까??
전위 연산자 | 후위 연산자 | |
파라미터 | void | int (int 값의 의미는 없고 단지 전위, 후위를 구분하기 위함) |
리턴값 | 객체 자체 | 임시 객체 |
속도 | 빠름 | 느림 (객체의 새로 만들어 return하기에 속도가 느림) |
| ✍️ 전위 연산자 예시
// void값을 받으면 전위 연산자임.
Fixed& Fixed::operator++(void) {
this->setRawBits(this->getRawBits() + 1);
return *this;
}
Fixed& Fixed::operator--(void) {
this->setRawBits(this->getRawBits() - 1);
return *this;
}
| ✍️ 후위 연산자 예시
// int값을 받으면 후위 연산자임.
Fixed Fixed::operator++(int _val) {
(void)_val;
Fixed temp;
temp.rawBit = rawBit;
this->rawBit++;
return temp;
}
Fixed Fixed::operator--(int _val) {
(void)_val;
Fixed temp;
temp.rawBit = rawBit;
this->rawBit--;
return temp;
}
rawBit는 private 변수인데, "temp.rawBit = rawBit;"가 왜 오류가 안 나는지 궁금하다면 밑에 링크 클릭!
https://developer-eun-diary.tistory.com/14
알고리즘 공부를 할 때 속도를 위해서 후위 연산자를 쓰는 게 좋다고 이야기를 많이 들어서 이유가 궁금했었는데..!
드디어 궁금증 해결!!!
728x90
'개발 언어 > cpp' 카테고리의 다른 글
cpp static const 변수 (0) | 2022.01.03 |
---|---|
cpp 멤버 함수 안에서 자신과 동일한 클래스 객체 private 멤버 접근 (0) | 2021.12.30 |
CPP 클래스 상속(Inheritance) (0) | 2021.12.22 |
cpp 연산자 오버로딩(Operator Overloading) (0) | 2021.12.21 |
cpp 오버로딩(Overloading) (0) | 2021.12.21 |
댓글