본문 바로가기

[C++]포인터간의 형변환

반응형

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
-->