반응형
const
- Lvalue로 올 수 없는 변수(상수), 주소 또는 역참조값이 Lvalue로 올 수 없는 포인터 변수등 을 선언할 때 쓰임
- 포인터 변수를 선언할때, 자료형 앞 또는 포인터 변수 이름 앞 또는 두위치 모두 "const" keyword 를 붙이면, 각각의 위치에 따라서, 값또는 주소 혹은 둘다, Lvalue로 올 수 없음, 대입 연산자 왼쪽에 올 수 없음
- 이때 주의해야 될것은, 어떤 특정 변수를 대상으로 하는게 아니라, 자료형, 자료형* 포인터 를 대상으로 하는 것이다, 즉 const int a 가 있다면, int a를 const 로 만든게 아니라, a 가 const int 타입이며, 다른 const 자료형 처럼 Lvalue로 올 수 없는 것이지 값을 수정할 수 없는게 아니다.
- constexpr과는 다르게, 값이 컴파일타임 뿐만 아니라 런타임에도 값이 정해질 수 있음, 둘다 허용
- 선언과 동시 초기화를 하면 컴파일타임(Compile-time)
- 선언 후 런타임에 초기화를 하면 런타임(Run-time)
const 자료형 변수식별자 = 초기화값;
const 자료형& 레퍼런스식별자 = 변수;
포인터 변수에 붙일 경우
1. const 자료형 *포인터식별자 = &변수;
2. 자료형 * const 포인터식별자 = &변수;
3. const 자료형 * const 포인터 식별자 = &변수
또한 멤버 함수 뒤에 const 를 붙일경우, 해당 함수는 멤버 변수를 수정할 수 없다
반응형
'C++' 카테고리의 다른 글
C++ Inheritance (상속)_ 상속관계, 접근권한, 생성자,소멸자 순서 (1) | 2020.03.09 |
---|---|
c++ Singleton Pattern 기본 구현 방법 (0) | 2020.03.03 |
Static Member Function(정적 멤버 함수) (0) | 2020.02.27 |
CopyConstructor, Shallow Copy, Deep Copy (0) | 2020.02.24 |
std::function (c++ 11) (0) | 2020.02.23 |