2011-02-18 12 views
2

저는 C++을 처음 사용합니다. 초보. C++에서 제공하는 캐스팅 기능을 배우는 동안 왜 캐스팅 기능이 특별히 정적 캐스팅인지 궁금합니다. 우리는 어떤 유형의 변수가 필요한지 알 때 왜 캐스팅을해야합니까?.왜 주조 기능이 필요합니까?

답변

1

귀하의 질문을 올바르게 이해하면 C++static_cast 연산자가있는 이유를 묻습니다. Typecasting은 클래스 계층 구조에서 포인터를 이동하는 데 도움이됩니다. static_cast을 사용하면 클래스 계층 관계에서 포인터를 다운 캐스트 할 수 있습니다. 그러한 전환은 안전하지 않지만, 그것을 처리하는 동안 조심해야합니다.

+0

Mahesh, 다시 여기를 이해하려고, 클래스를 고려 static_cast는 기본 데이터 유형 이외의 포인터에서만 이루어집니다? – Lakshmi

+0

예, 포인터를 기본 클래스로 파생 클래스의 포인터로 변환합니다. – Mahesh

+0

그녀는 포인터로 ** 사용 **되었는지 묻습니다. static_cast 키워드는 유형 간의 정상적인 변환에 사용될 수 있습니다. 여기에는 숫자 유형 간의 캐스트, 포인터의 캐스트와 계층 구조 위로의 참조, 단 일 생성자로 변환, 변환 연산자로 변환이 포함됩니다. @ Lakshmi, google을 사용하는 법을 배우십시오 : http://www.cppreference.com/wiki/keywords/static_cast – Nav

1

예를 들어 한 유형을 다른 유형으로 변환하려고합니다. float를 int로 말하십시오. 또는 다른 클래스의 객체 (일반적으로 기본 대 상속). 다른 예가 많이 있습니다. 당신은 대부분의 예제와 다른 경험을 얻음으로써 그것을 주로 사용하는 법을 배웁니다.

+0

감사합니다. David. 내가 말했듯이 U로 실제 사용을 이해 코딩을 많이 했어 – Lakshmi

1

static_cast는 암시 적 변환을 취소하도록 설계되었습니다. void *로 암시 적으로 변환하면 이전 변환을 실제로 되돌릴 때 static_cast로 변환 할 수 있습니다.