Fundamental of CS/: : C++

[Inheritance] C++ Inheritance

Jay.P Morgan 2024. 7. 16. 11:01

 

 

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를 통해 실제 프로젝트에서 상속이 어떻게 활용되는지도 함께 학습합니다.