[명품 C++ Programming] chapter 8 : 상속(3) - 상속과 생성자, 소멸자

eunee22·2023년 9월 10일

명품 C++ Programming

목록 보기
29/34

제가 대학교 1학년 때 [명품 C++ Programming] 교재로 진행되는 C++ 수업에서 배운 내용을 교재와 ppt를 중심으로 정리한 내용입니다.
(2022.9 ~ 2022.12)
당시에 공부를 위해서 HWP 파일로 정리해 놓은 것을 그대로 올립니다.

🍑상속과 생성자, 소멸자

파생 클래스와 기본 클래스의 생성자 호출 및 실행 관계

  • 기본 클래스와 파생 클래스는 각각 생성자를 소유

  • 파생 클래스의 객체 생성시 기본 클래스와 파생 클래스 둘다 생성자가 실행

  • 기본 생성자의 생성자가 먼저 실행됨
    → 기본 클래스의 초기화가 먼저 이루어지고 이를 활용하는 파생 클래스의 초기화가 이루어지는 것은 당연

  • 호출 관계는 컴파일러에 의해 발생

  • 파생 클래스의 생성자를 컴파일 할 때 기본 클래스의 생성자를 호출하는 코드를 삽입

  • 파생 클래스의 생성자에서 기본 클래스의 생성자 호출 시 인자 값을 전달

소멸자의 실행 순서

  • 파생 클래스의 객체 소멸시 파생 클래스의 소멸자 실행 후 기본 클래스의 소멸자 실행
  • 생성자의 실행 순서와 반대로 실행

파생 클래스에서 기본 클래스 생성자 호출

  • 파생 클래스의 객체 생성 시 반드시 파생 클래스의 생성자 하나와 기본 클래스의 생성자 하나가 실행
    → 파생 클래스와 함께 실행할 기본 클래스의 생성자를 지정해야함

  • 파생 클래스의 생성자를 작성 시 기본 클래스의 생성자를 명시적으로 선택하는 법
    파생클래스생성자() : 기본클래스생성자 선언부 { 파생 클래스의 생성자 내용 }

  • 기본 클래스의 생성자를 명시적으로 지정하지 않으면 컴파일러가 묵시적으로 기본 생성자가 실행되도록 함
    → 명시적으로 지정해주는 부분에 : 기본 클래스의 기본 클래스 코드가 자동으로 추가됨

profile
보안 공부하는 대학교 4학년 / 시리즈에서 더욱 편하게 글을 찾아보실 수 있습니다:)

0개의 댓글