형변환 내부 동작에 대하여 질문드립니다.
호습다
여러 상속 관계를 가지는 C++기반 프레임워크를 사용하다가 형변환에 대해 궁금증이 생겨 질문드립니다.예를 들어 A클래스가 있고, A클래스를 상속받는 B클래스가 있습니다. 여기서 클래스 인스턴스를 생성하여 다른 클래스형으로 형변환하는 경우가 있는데, 이런 경우 내부적으로 어떻게 동작하는 건가요?
현재 제가 생각하고 있는건
A클래스가 2변수(int)를 가지고 있고,
B클래스가 A클래스의 2변수 외에 3변수(double)를 추가로 가진다고 했을 때이 두 클래스의 인스턴스를 생성하였을 경우
A클래스형 포인터 pA는 l 4byte l 4byte l 이 크기를 가르킬 것이고,
B클래스형 포인터 pB는 ㅣ4byte l 4byte l 8byte l 8byte l 8byte l 이 크기를 가르킵니다.여기서 B클래스를 A클래스로 형변환(다운캐스팅, 업캐스팅 등 여러가지 있더군요)할 경우 pB가 가리키는 위치의 사이즈(32byte)가 A클래스 사이즈(8byte)만큼 줄어들어 A클래스형 포인터 pA에서도 (pA)pB를 할당받을 수 있습니다. 그대신 pB였을 때의 8byte에는 접근이 불가능.위에 제가 쓴 건 어디서 본게 아니라 그럴 것 같다는 추측이라서 저게 맞는건지 아니면 어떻게 동작하는 건지 질문드립니다.
-
화이트
답변 감사합니다.
형변환에 따라 기본적으로 메모리는 유지하면서 가리키는 범위만 다르다고 보면 되겠네요. -
맑은가람
제가 알기로는 가리키는 위치의 사이즈가 줄어드는 것이 아니라 사용할 수 있는 부분이 줄어드는걸로 알고 있습니다. 메모리상에는 있지만 사용하지 못하는 의미랄까요...???
a, b 버튼이 있는 리모콘과 자식인 a, b, c 버튼이 있는 리모콘이 있는데
메모리는 a, b, c를 사용할 수 있는 객체가 생성되고 리모콘은 a, b 버튼 밖에 없는...??
그런의미에요 ㅎ 저도 기억이 가물가물하네요 ㅎ
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676182 | 숫자 순서대로 배열하는법 | 권뉴 | 2024-11-24 |
2676152 | 기본적인거 하나 질문드립니다. | 개미 | 2024-11-24 |
2676124 | 함수선언관련 질문이에요~...털썩..수정완료 (2) | 가지 | 2024-11-24 |
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |