C++ 캐스팅의 마지막 파트인 const_cast입니다.
구성은 다음과 같습니다.
- static_cast
- dynamic_cast
- reinterpret_cast
- const_cast
1) const_cast란?
const_cast에 대해 알기 이전에 const 키워드가 무슨 역할을 수행하는지 알아야 합니다.
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/const
const 키워드 - C# 참조 - C#
const 키워드 - C# 참조
learn.microsoft.com
설계자들은 상수 필드나 지역 상수를 만들기 위해 const 키워드를 사용합니다.
상수를 만들기 위해서는 define을 사용해 매크로를 만들 수도 있고,
enum 구조체나 enum class를 활용해 열거형을 만들 수도 있습니다.
그리고 이러한 상수의 가장 큰 특징은 위의 공식 문서에서도 나와 있듯이,
상수는 변수가 아니며 수정할 수 없다는 것입니다.
2) const_cast의 동작
const_cast는 이러한 const가 수식된 상수를 수정할 수 있게 해주는 캐스팅입니다.
https://learn.microsoft.com/ko-kr/cpp/cpp/const-cast-operator?view=msvc-170
const_cast 연산자
자세한 정보: const_cast 연산자
learn.microsoft.com
즉, 공식문서에서 명시되어 있듯이
클래스에서 const, volatile및 __unaligned 특성을 제거 할 수 있게 해주는 것이 바로 const_cast의 역할입니다.
위와 같이 const_cast를 통해 상수 num의 값을 수정해보았습니다.
const_cast를 끝으로 C++ 캐스팅 4부작이 모두 끝나게 되었습니다.
캐스팅을 적재적소에 맞게 사용할 줄 안다면 분명히 훌륭한 무기가 되어 줄 것입니다.
그리고 이 포스팅이 읽는 분들에게 조금이라도 도움이 되었으면 좋겠습니다.
'C++' 카테고리의 다른 글
오른값 참조 (0) | 2024.04.22 |
---|---|
얕은 복사 VS 깊은 복사 (0) | 2024.04.21 |
C++의 캐스팅 - reinterpret_cast (0) | 2024.04.14 |
C++의 캐스팅 - dynamic_cast (0) | 2024.04.14 |
C++의 캐스팅 - static_cast (0) | 2024.04.08 |