위의 GetBar 함수같은 표현은 허용되지 않는다. 그 이유는 stackoverflow에서 쉽게 찾을 수 있다.
요약하자면 레퍼런스를 리턴하면 클래스의 내부 상태(여기선 Bar 멤버 변수)를 바꾸지 않는 다는 것(const)을 보장할 수 없기 때문이다. 따라서 const를 빼던가 레퍼런스(&)를 리턴 타입에서 빼줘야 한다
여담이지만 const 멤버 함수 내부에서는 const 멤버 함수가 아닌 다른 함수를 호출할 수 없다.
Reference
https://stackoverflow.com/questions/4957025/const-methods-that-return-references/4957167
'공부 > C || C++' 카테고리의 다른 글
C++ std::move (0) | 2022.09.05 |
---|---|
C++ 11 RVO(Return Value Optimization) (0) | 2022.08.29 |
C++ const가 붙는 위치에 따른 의미변화 (0) | 2021.09.01 |
C++ 변환 연산자(Conversion Operator) (0) | 2021.08.28 |
C++ vector의 resize vs reserve (0) | 2021.08.25 |