여러가지 상황에서 사용되는 캐스팅 방법 정리
상황 | 캐스팅 방법 |
const 속성 제거 | const_cast |
int, double 간 변환처럼 언어 자체에서 허용되는 변환을 명시적으로 수행 | static_cast |
커스텀 생성자나 변환 연산자가 구현되어 있을 때의 명시적인 변환 | static_cast |
전혀 관계없는 두 객체 간의 변환 | 불가능 |
같은 클래스 계층에 속하는 서로 다른 클래스 객체의 포인터 간 변환 | dynamic_cast(권장) 또는 static_cast |
같은 클래스 계층에 속하는 서로 다른 클래스 객체의 참조 간 변환 | dynamic_cast(권장) 또는 static_cast |
전혀 관계없는 두 포인터 간의 변환 | reinterpret_cast |
전혀 관계없는 두 참조 간의 변환 | reinterpret_cast |
함수 포인터 간의 변환 | reinterpret_cast |
'언어 > C++' 카테고리의 다른 글
C++ 캐스팅을 이용한 구조체와 배열 호환 (0) | 2021.08.03 |
---|---|
C++ 디폴트 할당자와 비교자가 사용될 때 컨테이너에 저장되는 항목이 가져야 할 상세 요건 (0) | 2021.02.25 |
C++ 무엇이 있는지 한 번이라도 확인은 해봐야 하는 STL의 알고리즘 모음 (0) | 2021.02.04 |
C++11 에서 소스코드에 벤더 종속적인 정보나 옵션 사항을 지정해야 할 경우. (0) | 2021.01.27 |
C++ 사용자 정의 리터럴 (0) | 2021.01.27 |