개발/C++

[C++] const 함수와 mutable

hojak99 2016. 12. 13. 12:17

const로 선언되어 있는 함수에서는 값을 쓰거나 변경하지 못한다. 오로지 읽기만 가능하다. 


하지만 mutable 예약어를 사용해 선언한 변수는 const 함수에서 값 쓰기와 변경이 가능하다.

너무 좋다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
#include<iostream>
 
class AAA {
private:
    mutable int count = 0;
 
public :
    int getCount() const;
    void setCount();
    void showData();
};
 
int AAA::getCount() const {
    count = 10;
    return count;
}
 
void AAA::setCount() {
    count = 1;
}
 
void AAA::showData() {
    std::cout << count << std::endl;
}
 
 
int main(){
 
    AAA *aaa = new AAA();
 
    aaa->setCount();
    aaa->showData();
    //출력값 : 1
 
    int b = aaa->getCount();
    std::cout << b << std::endl;
    //출력값 : 10
 
    delete aaa;
    return 0;
}
 
cs



const 함수는 자주 사용하면 좋다고 한다. 유지보수나, 다른 사람이 내 코드를 읽을 때 이해하기 쉬워진다나 뭐라나

반응형