반응형
HTMLWrite* h =&dw // HTMLWrite 타입으로 읽어 들이겠다는 내용
하지만 dw는 HTMLWrite의 객체를 가지고 있지 않기 때문에 에러 발생. 하지만
DocWriter* d = &hw; 에서
hw는 Docwriter와 같은 객체를 가지고 있으므로 형 변환 가능.
자식클래스의 포인터로 부모를 가르키는 것은 안 된다.(다운캐스트 불가능)
반대로 부모클래스의 포인터가 자식을 가르키는 것은 가능.(업캐스트는 가능)
하지만 다운 캐스트 가능한 경우도 있다.
다운캐스트가 가능한 경우
01 HTMLWriter hw;
02 DocWriter* pdw = &hw;
03 HTMLWriter* phw = (HTMLWriter*)pdw;
HTMLWriter 객체의 주소를 업 캐스트 했다가 다시 다운 캐스트 하는 경우에는 아무런 문제가 없다. 물론 컴퓨터는 pdw가 가르키고 있는 것이 HTMLWriter 객체라는 것을 모르기 때문에 명시적인 형변환을 해줘야 한다.
반응형
'About 프로그래밍!!! > C++' 카테고리의 다른 글
[ARM] 카운터 (0) | 2010.07.02 |
---|---|
[C++]접근제어 (0) | 2010.07.02 |
[C++]객체간의 형변환 (0) | 2010.07.02 |
[C++] 퀴즈1 (0) | 2010.06.30 |
[C++] 포함. (0) | 2010.06.29 |