저는 C++을 처음 사용합니다. 초보. C++에서 제공하는 캐스팅 기능을 배우는 동안 왜 캐스팅 기능이 특별히 정적 캐스팅인지 궁금합니다. 우리는 어떤 유형의 변수가 필요한지 알 때 왜 캐스팅을해야합니까?.왜 주조 기능이 필요합니까?
답변
귀하의 질문을 올바르게 이해하면 C++에 static_cast
연산자가있는 이유를 묻습니다. Typecasting은 클래스 계층 구조에서 포인터를 이동하는 데 도움이됩니다. static_cast
을 사용하면 클래스 계층 관계에서 포인터를 다운 캐스트 할 수 있습니다. 그러한 전환은 안전하지 않지만, 그것을 처리하는 동안 조심해야합니다.
예를 들어 한 유형을 다른 유형으로 변환하려고합니다. float를 int로 말하십시오. 또는 다른 클래스의 객체 (일반적으로 기본 대 상속). 다른 예가 많이 있습니다. 당신은 대부분의 예제와 다른 경험을 얻음으로써 그것을 주로 사용하는 법을 배웁니다.
감사합니다. David. 내가 말했듯이 U로 실제 사용을 이해 코딩을 많이 했어 – Lakshmi
static_cast의 기능에 대한 설명은 When should static_cast, dynamic_cast and reinterpret_cast be used?을 참조하십시오.
static_cast는 암시 적 변환을 취소하도록 설계되었습니다. void *로 암시 적으로 변환하면 이전 변환을 실제로 되돌릴 때 static_cast로 변환 할 수 있습니다.
- 1. 멀티 터치 기능이 필요합니까?
- 2. 왜 저장 버튼이 필요합니까?
- 3. 왜 내 기능이 멈추는가
- 4. 왜 "delete []"연산자가 필요합니까?
- 5. 왜 typeof가 필요합니까?
- 6. 왜 깊이 버퍼가 필요합니까?
- 7. 프리즘 모듈 - 왜 필요합니까?
- 8. 왜 2NF가 필요합니까?
- 9. 왜 ReaderLock이 필요합니까?
- 10. 왜 RTTI가 필요합니까?
- 11. 왜 여기에 세미콜론이 필요합니까?
- 12. 왜 Control.Invoke가 필요합니까?
- 13. 왜 세션 빈이 필요합니까?
- 14. 왜 DJANGO_SETTINGS_MODULE 세트가 필요합니까?
- 15. 왜 Server.HtmlEncode가 필요합니까?
- 16. 왜 DataBind() 메서드가 필요합니까?
- 17. 왜 여기에 typename이 필요합니까?
- 18. 왜 lex에서 규칙이 필요합니까?
- 19. 왜 스크립트 로더가 필요합니까?
- 20. 왜 libprofiler.so.0이 필요합니까?
- 21. 다형성/유형 주조 사용법
- 22. 주조 데이터
- 23. 결정 주조
- 24. 하스켈에서 주조
- 25. 왜 아이들 기능이 작동하지 않습니까?
- 26. 마샬링 - 왜 그게 무엇이며 왜 필요합니까?
- 27. 주조 제네릭 및
- 28. iPhone/iPad dev에 Mac의 새로운 기능이 필요합니까?
- 29. SQL에 내장 된 멀티 스레딩 기능이 필요합니까?
- 30. Wordpress 기능이 내장되어 있습니다 - 무엇이 필요합니까?
Mahesh, 다시 여기를 이해하려고, 클래스를 고려 static_cast는 기본 데이터 유형 이외의 포인터에서만 이루어집니다? – Lakshmi
예, 포인터를 기본 클래스로 파생 클래스의 포인터로 변환합니다. – Mahesh
그녀는 포인터로 ** 사용 **되었는지 묻습니다. static_cast 키워드는 유형 간의 정상적인 변환에 사용될 수 있습니다. 여기에는 숫자 유형 간의 캐스트, 포인터의 캐스트와 계층 구조 위로의 참조, 단 일 생성자로 변환, 변환 연산자로 변환이 포함됩니다. @ Lakshmi, google을 사용하는 법을 배우십시오 : http://www.cppreference.com/wiki/keywords/static_cast – Nav