[C++] mutable 키워드

2022. 3. 8. 12:11Languages/C++

 

 

 

Java나 C#에서 string 클래스를 공부하다가 들었던 단어이다. (물론 string 클래스는 immutable이다.) 예전에 C++을 공부할 땐 보지 못했던 키워드라, 신기해서 살펴봤다. const 키워드를 통해 변수나 함수를 읽기 전용으로 만들 수 있었다. 당연히 const 멤버 함수 내부에서 값을 수정하는 것이 불가능하다.

class Monster {
    int hp;

public:
    void Heal(int value) const {
        // hp += value;   const 멤버 함수 내부에서 값 수정 불가  
    }
};

 

하지만 수정하려는 변수에 mutable 키워드를 붙이면 const 멤버 함수 내에서도 수정이 가능해진다.

class Monster {
    mutable int hp;     // mutable 추가

public:
    void Heal(int value) const {
        hp += value;
    }
};

 

 

728x90
반응형