[GPG 1 글 1.4] 간단한 질문 두가지 올립니다

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

비회원

간단한 질문 두가지 올립니다

Post by 비회원 »

c++ 표준 라이브러리 확장편을 보고 있는데요 궁금한 것 두가지가 있어 올려봅니다.

질문1
cout<< (void*)this <<'\n';

this 를 (void*)this 이렇게 캐스팅 하던데요..

간간히 주소포인터 값도 출력할때 (void*) 캐스팅 하는걸 볼 수 있었습니다

주소값이 16진수 인데 void* 로 캐스팅 하는 이유가 뭔가요??



질문.2

struct derived : virtual base0, base1
{
....
}

저렇게 상속을 받게 되면 상속 구조가 어떻게 되는건지 잘 유추가 안되네요

virtual 이 붙으면 하나의 메모리 공간만이 생기는 것인데, 저렇게 일렬로 쓰면...

어떤 의미가 있는건지....????

답변좀 부탁 드리겠습니다
비회원

음....

Post by 비회원 »

주소값 형식이 원래 (void*)ptr 이기 때문에 저걸 쓴것 같고 그래서
삭제자 에서 delete ptr; 이렇게 나가는 것 같고..

virtual 을 쓰면... 부모 base0 이 base1 보다 메모리 위치상 뒤에 위치하더군요...

컴파일러마다 다른것인지 원래 규칙인지... 음...
Post Reply