본문 바로가기

지식창고/프로그래밍

(C++)mutable 키워드란?

반응형

의미 : 상수함수에서 값을 입력 받기 위하여 예외적으로 값을 받아오라는 뜻 입니다.

 

어떻게 사용하냐구요?

 

당연히 간단한 예제 들고 왔습니다~

 

#include <iostream>

 

using namespace std;

 

class Test

{

private:

mutable int x;                           

 //mutable 키워드를 통하여Ï 상수화  변수를 바꾸지 못하게 하는

 //제한을 예외적으로 해제 해줌.

        int y;                                                            

 

 

public:

 

 

                  void SetData(int a, int b) const

                  {

                                   x = a;                        

//x mutable 선언되어 있으므로 가능.

                                   y = b;                        

//y 일반 변수로 선언 되어있기 때문에 아래와 같은 에러가 발생

//error C3490: 'y'¨() const 개체를 통해 액세스되고 있으므로

//수정할  없습니다.

                  }

};

 

 

int main(void)

{

 

 

                  Test test;

 

 

                  test.SetData(10, 20);

 

 

 

 

                  return 0;

}

 

이렇게 mutable 키워드 const키워드를 사용하여 상수화 시킨 변수

대해 예외를 두고 변수를 예외적으로 바꿀 수 있게 해주는 키워드입니다. 

 

하지만, mutable 키워드는 애초에 const키워드를 사용하여 상수화 시킨 변수는

해당 프로그래머의 의도가 있었을 테지만, 이를 무시하고 예외적으로 바꾸게 되면, 

프로그램의 혼란이 즉, 에러를 발생 시킬 수도 있다고 생각이 들지만, 예외는 있겠죵? ㅎ 

 

mutable 키워드에 대해서는 여기까지 보도록 하겠습니다-

 

씨~~~ 유~~~

반응형

'지식창고 > 프로그래밍' 카테고리의 다른 글

(C++)const static 키워드란?  (0) 2019.07.06
(C++)friend키워드란?  (0) 2019.07.06
(C++)explicit 키워드란?  (0) 2019.07.05
(C++)c++의 함수오버로딩이란?  (0) 2019.07.03
(C, C++)c, c++에서 참조자란?  (0) 2019.07.03