728x90
반응형
C++
641 page
reinterpret_cast:상관없는 자료형으로 형 변환
|
객체 타입을 완전히 바꾸는 것을 reinterpret_cast 라고한다.
642_ReinterpretCasting.cpp
|
이소스는 reinterpret를 허용해야 되는 것.
hexa view 쓸 때 이렇게 type변환이 필요하다.
644_PolymorphicDynamicCasting.cpp
가상함수를 가지고 있어서 허용 635page의 소스를 보면
|
거의동일한 수준의 애를 캐스팅허용하는 dynamic이지만
여기서 허용하는 것은 가상함수를 가지고 있기 때문이다.
646page
|
부모 * A = 부모 객체;
자식 * B = 캐스팅(A);
이것은
가상함수가 있으면 컴파일은 시켜주지만 NULL을 반환하게 된다.
635page 의
|
은 에러가 나지만
646_PolymorphicStableCasting.cpp
|
에러가 나지 않는다.
NULL을 반환해서 실행을 시켜준다. 안전성을 검사하도록 컴파일러가 바이너리 코드를 생성한다. 실행속도는 늦어지지만(가상함수는 가상테이블을 만들기 때문에) 그만큼 안정적이다.
RunTime중에 결정이 된다. 실행중간에 캐스팅이 결정되니깐 dynamic_cast 이고 이것의 반대 개념이 static_cast이다. 빠른 것은 static이 빠르다.
647_DynamicBadCastRef.cpp
|
이것은 캐스팅이 아니고 예외이다.
C++끝!!
728x90
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
단체사진 (2) | 2014.12.19 |
---|---|
2014 IT 채용박람회 업체목록 (2) | 2014.12.16 |
2014 Smart Controller (2) | 2014.12.01 |
확실하지 않지만 The C++ Standard Library, 2nd Edition.pdf (1) | 2014.11.12 |
2014.11.11 출석번호 8번 김진철 일일보고서 (5) | 2014.11.11 |
assert 함수 설명 (0) | 2014.11.11 |
2014.11.10 usart/assert분석 (0) | 2014.11.11 |
usart 소스 분석 (1) | 2014.11.10 |