const가 붙는 위치에 따른 의미 변화
operator overloading 의 반환구에 const 를 붙여줌.
const Test
const Member Functions
- member function에 쓰이는 const 의 목적은 const object로 member function을 불렀을 때 어느 member function이 불릴지 판별하는 것. member function에 const 를 붙이는 이유는 크게 두가지.
- object 내용을 수정하는 함수와 그렇지 않은 함수를 구분할 수 있게 함.
const object를 이용한 작업을 가능하게 하는데, 이는 C++의 성능 향상을 이루는 매우 중요한 방법 중 하나임(EC++ 20 참조).
- const에는 physical constantness와 logical constantness의 두가지 개념이 존재.
- const member function 안에서도 특정 member field를 수정해야하는 경우가 있는데, 이러한 member field에 키워드 mutable을 붙이면 수정이 가능.
Avoiding Duplication in const and Non-const Member Functions
같은 함수를 const 버전과 non-const 버전으로 구현하는 과정에서의 코드 중복을 막을 수 있는 방법.
Summary
- Declatring something const helps compilers detect usage errors. const can be applied to objects at any scope, to function parameters and return types, and to member functions as a whole.
- Compilers enforce bitwise constness, but you should program using logical constness.
- When const and non-const member functions have essentially identical implementations, code duplication can be avoided by having the non-const version call the const version.
Reference
- Effective C++ by Scott Meyers
댓글 없음:
댓글 쓰기