fullstack

[C++] mutable 키워드

Language/C++

원래대로라면 const로 멤버 함수가 상수화되면 이 함수는 멤버 변수를 변경시키지 못한다. 그러나 멤버 변수가 mutable로 선언되어 있다면 상수화된 멤버 함수라도 멤버 변수 변경이 가능해진다.

mutable 선언은 되도록 사용하지 않는 것이 좋다고 한다. 어쩔수 없는 경우라면 차라리 함수를 상수화하지 않는 것이 더 나을 수 있다.

아래는 mutable 키워드 사용 예이다.


1
2
3
4
5
6
7
8
9
class AAA
{
    mutable int val;
public:
    void setValue(int _val) const
    {
        val = _val;
    }
};



setValue는 상수화된 멤버 함수이므로 원래대로라면 멤버 변수 val을 변경할 수 없지만 val 이 mutable로 선언되었으므로 값 수정이 가능하다.


'Language > C++' 카테고리의 다른 글

[C++] 상속의 조건. is-a 와 has-a  (0) 2015.12.19
[C++] 상속 (Inheritance)  (0) 2015.12.03
[C++] explicit 키워드  (0) 2015.12.02
[C++] static 키워드  (0) 2015.12.02
[C++] const 키워드  (0) 2015.12.02