Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 자료구조 공부
- 게이트 웨이
- 비트버킷
- 서브넷 마스크
- VisualStudio
- 메모리누수찾기
- 코린이
- 디버깅기능
- C++공부
- SVN
- git
- 비쥬얼스튜디오
- 데브옵스엔지니어
- 원격디버거
- c++ 알고리즘 공부
- 정리글
- window개발
- 아이구..
- 정보누적
- devops
- 네트워크 비트
- 비쥬얼스튜디오기능
- c++메모리누수
- c++ 공부
- 호스트 비트
- github
- C++알고리즘 공부
- 성능프로파일러
- C++
- 데브옵스
Archives
- Today
- Total
장비업체의 하급 비전개발자
C++ 함수 뒤에 const와 함수 앞에 const 의미 본문
const int func();
int func() const;
코드를 분석하던 중 두가지 const의 차이가 궁금하여서 찾아보았다.
const란 무엇인가?
데이터가 변경되지 않도록 상수화 를 하는것이다.
예를 들어
const int a = 5;
a = 10; //error
const를 쓴 변수에 값을 바꾸려고하면 에러가 나온다.
위의 예시처럼 함수에 붙어진 것은 함수가 안바뀌는것이다(?)...
첫번째 예시처럼 반환형에 const가 붙은경우에는 특정 조건이 아니고는 의미가 없다고한다. 조건이라 함은 참조다.
const int func(int& nNum)
{
int& nTemp = nNum;
return nTemp;
}
void main()
{
int a = 10;
int b = func(a);
b = 0; //상수화되었기 때문에 error
}
위와 같이 참조를 받아서 그 참조를 반환할 경우에만 의미가 있다고한다.
두번째 예시의 함수는 맴버변수를 바꾸지 않겠다는 의미라고한다.
class A
{
int func() const;
int m_nNum;
}
다음과 같이 func이 A클래스의 함수라고 하면, func함수 내에서는 m_nNum을 변경할 수 없다고한다!
코드의 안정성을 위해서는 잘 활용하면 좋을 것 같다.
'C++ 공부' 카테고리의 다른 글
| 로컬 네트워크 정리 IPv4란? (0) | 2025.03.14 |
|---|---|
| Visual SVN과 Git의 장단점 (0) | 2025.02.17 |
| C++ 스택(Stack)과 힙(Heap)의 차이.. (0) | 2023.03.01 |
| C++ pass by value(값 전달 방식) 와 pass by reference(참조 전달 방식) 차이 (0) | 2023.02.27 |