class 에 별다른 연산자 오버로드나 상속은 없는 상태에서
void * 형 포인터를 class type 의 포인터로 캐스팅 할때
void *ptr = get_pointer(); class abc *p_abc = (class *abc) ptr;
이런식으로 c style 로 캐스팅해도 문제가 없을까요?
동작상에 차이는 없어 보이는데 혹시나 해서 질문드립니다.
원래 get_pointer()로 받은 포인터가 abc *형의 포인터였다면, void *로 캐스팅하고 나중에 도로 abc *형으로 캐스팅하는 것은 가능합니다.
물론 원래 포인터가 abc *가 아니었다면... 뭐 무슨 일이 일어날지 알 수 없죠.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
...
원래 get_pointer()로 받은 포인터가 abc *형의 포인터였다면, void *로 캐스팅하고 나중에 도로 abc *형으로 캐스팅하는 것은 가능합니다.
물론 원래 포인터가 abc *가 아니었다면... 뭐 무슨 일이 일어날지 알 수 없죠.
댓글 달기