정체불명의 모모
[C++] 상속 관계에서 생성자, 소멸자 호출 순서 / virtual 소멸자 본문
간단한 테스트로 결과를 확인해 보자!
1. 상속 관계에서 생성자, 소멸자 호출 순서
2. 상속 관계에서 virtual 소멸자 호출
1. 상속 관계에서 생성자, 소멸자 호출 순서
위의 출력값 처럼 상속 구조에서 생성자는
부모 생성자 -> 자식 생성자 -> 자식 소멸자 -> 부모 소멸자
부모에서 자식을 호출해서 생성하고 소멸시에 자식에서 닫고 선 부모도 마저 소멸시킨다.
2. 상속 관계에서 virtual 소멸자 호출
위 코드와 다른 부분은
Parent * parent = new Child ;
이렇게 객체를 생성했을 때,
자식의 소멸자는 호출 되지 않는 걸 확인 할 수 있습니다.
이 때, 부모 클래스의 소멸자에 virtual 키워드를 넣게 되면 자식의 소멸자도 불러와 지게 됩니다.
짜잔~ 정상적으로 자식의 소멸자 까지 호출이 되었습니다.
상속을 하는 클래스의 경우 정상적으로 자식의 소멸자를 호출해 주려면 virtual 키워드를 잊지 말자구요!
'프로그래밍(c++)' 카테고리의 다른 글
[이론] 업캐스팅과 다운캐스팅이란??(필요성, 예제) (0) | 2021.09.08 |
---|---|
[c++] dynamic_cast 란? (2) | 2021.09.08 |
[C++/STL] vector와 deque의 차이점 (0) | 2021.08.10 |
[ C++] std::mutex를 통한 thread 동기화 (0) | 2021.08.05 |
[C++] placement new - 전용 new (0) | 2021.08.05 |
Comments