7월 07, 2016

[EC++ 03] Use const whenever possible.

const가 붙는 위치에 따른 의미 변화


operator overloading 의 반환구에 const 를 붙여줌.

const Test


const Member Functions

  1. member function에 쓰이는 const 의 목적은 const object로 member function을 불렀을 때 어느 member function이 불릴지 판별하는 것. member function에 const 를 붙이는 이유는 크게 두가지.
    1. object 내용을 수정하는 함수와 그렇지 않은 함수를 구분할 수 있게 함.

    2. const object를 이용한 작업을 가능하게 하는데, 이는 C++의 성능 향상을 이루는 매우 중요한 방법 중 하나임(EC++ 20 참조).
  2. const에는 physical constantness와 logical constantness의 두가지 개념이 존재.
  3. 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

댓글 없음:

댓글 쓰기