반응형
1. 상속과 관련된 생성자와 소멸자의 특징.
- 파생 클래스의 생성자는 가장 먼저 호출되지만 가장 나중에 실행된다.
- 재귀호출과 비슷하게 생성자 함수에 대한 호출 스택이 쌓여 올라가는 것이 특징이다.
- 소멸자는 파생 클래스의 것이 가장 먼저 호출 및 실행된다.

* 왜 그런지 곰곰이 이유를 생각해보니, 기본적으로 파생 클래스라는 것은 기본 클래스에서 어느정도 변형이 일어난 클래스이므로, 기본이되는 베이스 클래스를 호출해서 그 기능들을 파악한 다음에 파생 클래스를 호출해야 문제가 발생해도 빠르게 어느부분인지 파악할 수 있기때문인것 같다.
소멸자도 마찬가지로 파생 클래스를 먼저 종료시키는 것이 문제가 발생했을때 베이스에서 부터 찬찬히 찾는 것이 더 빠르게 어느부분인지 파악할 수 있기때문인것 같다.
마치 요리를 할때 가장먼저 재료의 상태를 살피는 것과 비슷하다고 느꼈다.

# 상속과 관련된 생성자와 소멸자의 주의사항.
- 파생 클래스에서 기본 클래스 멤버 변수를 직접 변경하는 것은 적절치 않다.
- 파생 클래스 생성자에서 기본 클래스 멤버를 초기화 하지 말아야 한다.
- 상속관계에서 모든 생성자/소멸자는 오로지 객체 자신에 대한 접근만 시도하는 것이 적절하다.

반응형
'All Development' 카테고리의 다른 글
| C++) 가상 함수 작동원리 (0) | 2024.04.15 |
|---|---|
| C++) 가상 함수 (0) | 2024.04.03 |
| C++) 메서드 재정의 (0) | 2024.03.27 |
| C++) 상속 (1) | 2024.03.22 |
| C++) 객체 간 관계와 상속 (0) | 2024.03.21 |