멤버 변수
[예 : 공개, 개인)가 선언 된 순서대로 배치됩니다. 이렇게하면 객체가 예측 가능한 방식으로 초기화 및 액세스 할 수 있도록합니다.
기본 클래스
하위 집단은 상속 순서에 따라 오브젝트의 메모리 레이아웃에 배치됩니다. 여기에는 가상 및 비가 비상 기본 클래스가 모두 포함됩니다.
가상 함수 관리
가상 테이블에는 추가 메모리가 할당됩니다. 가상 테이블에는 각 가상 기능의 구현에 대한 포인터가 포함되어 있습니다. 이를 통해 객체는 가상 함수를 무시하고 다형성 동작을 유지할 수 있습니다.
구현 별 고려 사항
는 적용되는 반면, 객체의 특정 메모리 레이아웃은 컴파일러 및 플랫폼에 따라 다를 수 있습니다. Itanium ABI (Application Binary Interface)는 C 객체 레이아웃에 대한 일반적인 사양이지만 보편적으로 채택되지는 않습니다.
메모리 레이아웃 분석을위한 도구
clang : -fdump-record-layouts gcc : -fdump-class-hierarchy
visual c : /d1reportsingleclasslayouttest_a
는 기억력을 피할 수 있고, 그 행동을 최적화 할 수 있으며, 그에 대한 이해를 피할 수 있습니다. 코드.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3