mutable
2022. 4. 10. 12:47ㆍC++
const 함수 내에서의 값의 변경을 예외적으로 허용한다.
#include <iostream>
using namespace std;
class SoSimple
{
private:
int num1;
mutable int num2; //const 함수에 대해 예외를 둔다.!
public:
SoSimple(int n1, int n2) :num1(n1),num2(n2)
{ }
void ShowSimpleData() const{
cout<<num1<<", "<<num2<<endl;
}
void CopyToNum2() const{
num2 = num1; // const함수 내에서 num2에 저장된 갑슬 변경하고 있다.
} // 이는 num2가 mutable로 선언되었기 때문에 가능하다.
};
int main(void)
{
SoSimple sm(1,2);
sm.ShowSimpleData(); //1, 2
sm.CopyToNum2();
sm.ShowSimpleData(); //1, 1
return 0;
}
하지만 mutable의 과도한 사용은 const의 선언을 의미없게 만들어버린다.
그렇기에 mutable의 사용은 추천하지 않는다.
'C++' 카테고리의 다른 글
copy constructor (0) | 2022.04.16 |
---|---|
학번, 중간성적, 기말성적 입력 프로그램 (0) | 2022.04.14 |
static (0) | 2022.04.10 |
friend (0) | 2022.04.10 |
연산자 오버로딩 (0) | 2022.04.10 |