형변환 내부 동작에 대하여 질문드립니다.
호습다
여러 상속 관계를 가지는 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 버튼 밖에 없는...??
그런의미에요 ㅎ 저도 기억이 가물가물하네요 ㅎ
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2695270 | 질문이요..swap 관한겁니다..ㅠㅠ (3) | 콩알녀 | 2025-05-19 |
2695244 | 노땅초보궁금한게 하나 있는데요..반복문(while문)초보자질문 (6) | 큰꽃늘 | 2025-05-18 |
2695166 | do while 문 어떤것이잘못된건지 모르겠어요 (2) | 아이폰 | 2025-05-18 |
2695122 | 구조체에 대해 물어보고 싶은게 있습니다 ^^^.. (7) | 수련 | 2025-05-17 |
2695091 | txt 파일 입출력 후 2차 배열에 저장하기입니다. (3) | 헛장사 | 2025-05-17 |
2695063 | 수도요금 프로그램좀 짜주세요. | 시내 | 2025-05-17 |
2695033 | 답변좀요ㅠㅠ (1) | 비사벌 | 2025-05-16 |
2695010 | C++의 STL은 왜 굳이 템플릿화 시켜서 라이브러리를 만드나요? (초보수준의 질문..) (2) | 엘보어 | 2025-05-16 |
2694958 | 로직이 변한다는 것에 대해서 궁금합니다. | 튼동 | 2025-05-16 |
2694929 | 열혈강의 25-2 두번째 문제 질문 | 지우개 | 2025-05-15 |
2694900 | dequeue 에서 리턴값 프린트 방법알려주세요 오늘 12시까지 대화방에 있습니다 도와주세요 | 미투리 | 2025-05-15 |
2694854 | 절대값을 구할때 (2) | 그녀는귀여웠다 | 2025-05-15 |
2694827 | 이제 어떻게 공부해야할지 모르겠네요 | 새얀 | 2025-05-14 |
2694778 | 순열 계산요. | 맛조이 | 2025-05-14 |
2694754 | ShowWindow 함수를 이용하려 하는데 질문있습니다. (2) | 파도 | 2025-05-14 |
2694731 | 리눅스 커널의 시작점 질문 | 미르 | 2025-05-13 |
2694702 | 이거 뭐가문제인가요 코드수정좀 (3) | 맑은 | 2025-05-13 |
2694675 | C언어 후위표기를 중위표기로 | 앨런 | 2025-05-13 |
2694646 | 안녕하세요 파일 합치기 함수! (1) | 연블루 | 2025-05-13 |
2694618 | 잘몰라서 설명부탁드립니다. scanf 관련 (3) | 파라 | 2025-05-12 |