C++ 상속(Inheritance) 챕터 정리
상속(Inheritance)이란?
상속은 객체지향 프로그래밍(OOP)의 핵심 개념으로, 클래스 간의 관계를 정의하고 공통 기능을 재사용하기 위해 사용합니다.
상속을 사용하는 주요 목적은 다음과 같습니다.
- 클래스 간의 관계(부모-자식)를 표현
- 인터페이스를 통일
- 코드 재사용성 향상
- 동적 함수 바인딩(Dynamic Function Binding) 구현
특히 C++에서는 다형성(Polymorphism) 을 구현하기 위해 상속이 매우 중요합니다.
이번 챕터에서 배우는 내용
1. Virtual Table(VTable)
상속에서 가장 중요한 개념인 Virtual Table(VTable) 을 학습합니다.
- virtual 함수가 어떻게 동작하는지
- 런타임에 함수가 선택되는 과정
- Dynamic Function Binding의 원리
를 메모리 수준에서 이해합니다.
2. 클래스의 메모리 구조
Base Class와 Derived Class가 메모리에 어떻게 배치되는지 살펴봅니다.
- 부모 클래스의 데이터
- 자식 클래스의 데이터
- 메모리 레이아웃
등을 통해 상속이 실제로 어떻게 구현되는지 이해합니다.
3. 상속의 내부 동작 이해
상속의 저수준(Low-Level) 동작 원리를 이해하면 다음과 같은 고급 개념도 쉽게 이해할 수 있습니다다.
- Object Slicing
- Dynamic Casting (dynamic_cast)
- Multiple Inheritance(다중 상속)
4. 실제 라이브러리 활용
C++ 표준 라이브러리의 Stream Library(iostream) 도 상속 구조를 사용합니다.
이를 통해
- 실제 산업에서 상속이 어떻게 활용되는지
- 상속을 이용한 라이브러리 설계 방식
을 이해할 수 있습니다.
핵심 정리
- 상속(Inheritance) 은 클래스 간의 관계를 표현하고 코드 재사용과 인터페이스 통일을 위해 사용합니다.
- C++에서 상속의 가장 중요한 목적 중 하나는 다형성(Polymorphism) 과 동적 함수 바인딩(Dynamic Function Binding) 을 구현하는 것입니다.
- 이번 챕터에서는 Virtual Table(VTable) 과 메모리 구조를 중심으로 상속의 내부 동작을 학습합니다.
- 이를 기반으로 Object Slicing, Dynamic Casting, 다중 상속 등 고급 개념까지 이해할 수 있습니다.
- 또한 C++ 표준 Stream Library를 통해 실제 프로젝트에서 상속이 어떻게 활용되는지도 함께 학습합니다.
'Fundamental of CS > : : C++' 카테고리의 다른 글
| [Inheritance] Virtual Function (0) | 2024.07.16 |
|---|---|
| [Inheritance] C++ 상속(Inheritance) Intro (0) | 2024.07.16 |
| [OOP] DOP (Data-Oriented Programming) (0) | 2024.07.16 |
| [OOP] Class Keywords (0) | 2024.07.16 |
| [OOP] Function Overloading / Operator Overloading (0) | 2024.07.16 |