728x90

static_cast

  • static_cast는 C++에서 타입 변환을 수행할 때 사용하는 캐스트 연산자이다.
  • static_cast는 컴파일 시간에 타입 변환을 검사하며, 안전한 변환만을 허용한다.

 

기본 문법

static_cast<new_type>(expression)
// new_type : 변환하고자 하는 타입
// expression : 변환 대상이 되는 표현식

 

사용예제

// 기본 타입 변환
int a = 10;
double b = static_cast<double>(a) // int를 double로 변환

// 포인터 타입 변환
class Base {};
class Derived : public Base {};

Base* base new Derived();
Derived* derived = static_cast<Derived*>(base); // 안전한 다운캐스팅

// 열거형 타입 변환
eunm class Colors { Red, Green, Blue };
int colorValue = static_cast<int>(Colors::Red); // 열거형을 정수형으로 변환

 

주의사항

  • static_cast는 컴파일 시간에 타입 검사만 하므로, 런타임에 안전성을 보장하지는 않음.
    예를 들어, 상속 관계에서 기본 클래스 포인터를 유도 클래스 포인터로 변환할 때, 실제로 유도 클래스 객체를 가리키고 있지 않으면 잘못된 결과를 초래할 수 있음.
  • 잘못된 타입 변환을 시도할 경우, 컴파일 오류가 발생할 수 있음.

 

728x90

'전산 > C++' 카테고리의 다른 글

c++ - std::endl 과 "\n"의 차이  (0) 2024.06.29

+ Recent posts