Lvalue와 Rvalue
2019. 8. 23. 00:38ㆍPL/C++
C++에서의 모든 표현식은 Lvalue 혹은 Rvalue다. Lvalue는 단일 표현식 이후에도 없어지지 않고 지속되는 객체다. Lvalue는 쉽게 말해 변수라고 생각하면 되고, Rvalue는 상수 혹은 임시 객체다. 예를 들어 전위연산자는 Lvalue, 후위연산자는 Rvalue다.
보통 Rvalue를 참조하려고 하면 에러가 뜬다. C++11 이상부터는 &&참조연산자를 이용해 Rvalue를 참조할 수 있다. 혹은 const T &를 사용한다
[추가] Lvalue가 될 수 없는 const 객체는 반드시 const 반환을 해야만 한다
int& Array::operator[](int index){
return pArr_[index];
}
const int& Array::operator[](int index) const{
return pArr_[index];
}
[출처] https://effort4137.tistory.com/entry/Lvalue-Rvalue
'PL > C++' 카테고리의 다른 글
클래스 템플릿을 헤더파일에 작성해야 하는 이유 (0) | 2019.08.23 |
---|---|
const 정리 (0) | 2019.08.23 |
const 반환의 의미 (0) | 2019.08.22 |
Default 멤버 함수 (0) | 2019.08.22 |
explicit를 사용해서 묵시적 변환을 허용하지 않는 이유 (0) | 2019.08.22 |