+ 이 글은 작성자가 직접 공부하고 복습하며 작성한 글입니다. 만약 직접 작성하지 않았다면, 꼭 출처를 밝히겠습니다!

 + 이 글은 개인적인 공부를 바탕으로 작성되었기에, 틀린 부분이 있을 수 있으며, 틀린 부분이 있다면 알려주시면 감사하겠습니다!

 + 이 글을 다른 곳으로 가져가신다면, 꼭 출처를 남겨주세요~

 + '참고사이트'는 공부하기 위해 참고한 사이트들을 모아 둔 것입니다.

 + 혹시라도 문제가 된다면 바로 조취를 취할테니, 말해주시면 감사하겠습니다!



기본적인 C++의 const에 대한 기록


const는 크게 2곳에서 사용된다.

1. 변수

2. 함수



1. 변수

1) const int val;

- val의 데이터 형이 (const int)형이므로 값을 수정할 수 없다.


2) const int* val;

- val은 (const int)형의 포인터 값이다.

- val의 값은 수정 가능하다.

- val이 가리키는 데이터는 (const int)형이므로 수정 불가능.


3) int* const val;

- val의 데이터 형은 int*형이고, const 키워드로인해 수정 불가능하다.

- val이 가리키는 데이터는 (int)형이므로 값을 수정할 수 있다.


4) const int* const val;

- val의 값이나 val이 가리키는 데이터나 둘 다 수정 불가능.



2. 함수

1) const int foo()

- foo()의 반환 데이터 평이 (const int)이므로 반환값은 수정 불가능하다!


2) int foo() const

- 표현하자면 int foo() const { 함수 내용 }; 이므로, 함수 내용에서 멤버 변수 값을 수정하지 않겠다는 의미다.

- 멤버 변수 값을 수정할 수 없다보니, 사용할 수 있는 함수들도 const형 함수들 만 사용할 수 있다. 이 이외는 에러가 발생.

- 이런 특성때문에, Get함수에서 많이 사용하고, Set함수에서는 거의 사용하지 않는다.





Copyright © -강정이좋아- 무단 전재 및 재배포는 하지 말아주세요.

+ Recent posts