+ 이 글은 작성자가 직접 공부하고 복습하며 작성한 글입니다. 만약 직접 작성하지 않았다면, 꼭 출처를 밝히겠습니다!
+ 이 글은 개인적인 공부를 바탕으로 작성되었기에, 틀린 부분이 있을 수 있으며, 틀린 부분이 있다면 알려주시면 감사하겠습니다!
+ 이 글을 다른 곳으로 가져가신다면, 꼭 출처를 남겨주세요~
+ '참고사이트'는 공부하기 위해 참고한 사이트들을 모아 둔 것입니다.
+ 혹시라도 문제가 된다면 바로 조취를 취할테니, 말해주시면 감사하겠습니다!
기본적인 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함수에서는 거의 사용하지 않는다.
** 참고사이트 **
- https://boycoding.tistory.com/206
- https://thinkpro.tistory.com/141
- https://blog.codingcat.kr/24
- https://dydtjr1128.github.io/cpp/2019/08/05/Cpp-const-after-function.html
Copyright © -강정이좋아- 무단 전재 및 재배포는 하지 말아주세요.
'재료들 > C, C++(STL 포함)' 카테고리의 다른 글
시간 측정하기!!! (0) | 2018.07.02 |
---|---|
Q. 변수 선언부분이 실행시간에 얼마나 영향을 줄까? (0) | 2018.07.02 |
[STL] Vector에 관해서 (0) | 2018.04.14 |
[Error] Visual Studio Error (추가 중) (0) | 2018.04.14 |
[Override][Overloading] 함수 재정의 (0) | 2018.04.14 |