const
상수로 선언하여 수정하지 못하도록 하는 키워드
일반변수 const 선언
일반변수 const 변경
변경을 시도할 경우 컴파일 에러가 나게 된다.
포인터 const (변수명 앞)
변수명이 가리키는 변수의 값은 변경이 가능하다.
포인터자료형 변수명 앞에 const가 붙은 경우
변수명이 가리키는 주소변경이 불가능하다.
포인터 const (자료형 포인터 앞)
포인터가 가리키는 변수의 주소는 변경이 가능하다.
포인터가 가리키고 있는 값의 변경은 불가능하다.
pA를 통한 값 변경은 불가능했지만 iA를 통해 변경할 수 있다.
const 멤버 변수
초기화리스트를 통해 값을 초기화할 수 있다.
대입해서 초기화 할경우 컴파일 에러가 나게 된다.
const 함수
함수명 뒤에 const를 붙이면 멤버변수의 변경이 금지된다.
지역변수의 변경은 허용된다.
const 객체
정상적으로 값이 바뀌고 실행된다.
const가 붙은 객체는 멤버변수의 값을 변경시킬 수 없다.
getHealth()의 const 키워드를 제거하면 컴파일 에러가 난다.
const 객체는 const가 붙은 함수만 호출할 수 있다.
const 오버로딩
const가 붙지 않은 객체는 const가 붙지 않은 함수를 호출하고
const가 붙은 객체는 const가 붙은 함수를 호출한다
const가 붙지 않은 객체도 const가 붙은 함수를 호출 할 수 있다.
const가 붙은 객체는 const가 붙지 않는 함수를 호출 할 수 없다.
mutable
mutable 키워드가 붙은 변수는 const가 붙은 함수 내에서도 변경이 가능하다.
'C++' 카테고리의 다른 글
[C++] constexpr (0) | 2023.05.16 |
---|---|
[C++] 참조자 (0) | 2023.05.15 |
[C++] 복사대입연산자 (0) | 2023.05.12 |
[C++] 복사생성자 (0) | 2023.05.11 |
[C++] 소멸자 (1) | 2023.05.10 |