본문 바로가기

고급C,C++

mutable

상수 멤버 함수에서 mutable 데이터 멤버 일 경우에는 수정이 가능하다.

class CTextBook
{
public:
 ... 
 std::size_t length() const;
private:
 char * pText;
 mutable std::size_t textlength;
 mutable bool lengthIsValid;
};
std::size_t CTextBook::length() const //상수 멤버 함수
{
 if(!lengthIsValid){
   textLength = std::stelen(pText);
   lengthIsValid = true;
 }
return textlength;
}