- const_cast<new_type>(expression)
- const_cast<바꿀타입>(대상)
- const_cast는 포인터(pointer) 또는 참조형(reference)의 상수성(const)를 잠깐 제거해주는데 사용합니다.
- const_cast는 volatile 키워드를 잠깐 제거해 주는 데에도 사용이 가능합니다.
- 다른 캐스트 연산자가 하는 형 변환은 불가능 하며 오직 상수성(const)를 제거하는 것만 사용가능 합니다.
또한 다른 캐스트 연산자는 const_cast가 하는 상수성(const) 제거를 하지 못합니다. - 함수 포인터에는 사용 불가능합니다. (해봤음;;)
> 예제(1) - 포인터(pointer) 상수성(const) 제거
#include<iostream>
using namespace std;
int main(void){
char str[] = "BlockDMask";
const char * ptr = str;
cout << "before : " << str << endl;
//ptr[0] = 'Q'; ==> error
char * c = const_cast<char *>(ptr);
c[0] = 'Q';
cout << "after : " << str << endl;
return 0;
}
--> 결과

[C++] const_cast (타입 캐스트 연산자)
안녕하세요. BlockDMask 입니다. 오늘은 C++ 의 네가지 타입 캐스트 연산자 중에 (static_cast, const_cast, reinterpret_cast, dynamic_cast) const_cast 에 대해 알아보겠습니다. > const_cast 에 관한 기본 특..
blockdmask.tistory.com
'PL > C & C++' 카테고리의 다른 글
[C&C++] 구조체 비트 필드 사용하기 (0) | 2021.07.23 |
---|---|
[C++] static_cast, reinterpret_cast (0) | 2021.07.21 |
[C++] type cast 4가지 종류 (0) | 2021.07.21 |
[C++] 함수를 객체로 (C++ std::function, std::mem_fn, std::bind) (0) | 2021.07.16 |
[C++] 무한대(infinity) (0) | 2021.07.16 |