태그: destructor
3편
-
C++ 소멸자와 RAII: 가상 소멸자, 규칙 0, 소멸자에서의 예외
소멸자 호출 순서, 가상 소멸자가 필요한 정확한 조건과 대안(protected 비가상), Rule of 0/3/5, 소멸자에서의 예외·this 사용 함정, 스마트 포인터와의 조합까지 실무 기준으로 정리합니다.
-
C++ 가상 소멸자가 없을 때 생기는 누수: virtual·protected 소멸자 선택 기준
기반 클래스 포인터로 파생 객체를 delete했는데 파생 소멸자가 불리지 않아 메모리와 파일 핸들이 새는 이유를 보여주고, virtual 소멸자, 순수 가상 소멸자, protected 소멸자 중 언제 무엇을 쓰는지와 vtable 오버헤드를 설명합니다.
-
C++ 스택 되감기: 예외 발생 시 소멸자 호출 순서와 소멸자 예외가 terminate되는 이유
C++에서 예외가 던져지면 catch를 찾을 때까지 스택 프레임을 거슬러 올라가며 지역 객체 소멸자를 역순으로 호출합니다. 이 순서와 RAII가 자원 누수를 막는 원리, 소멸자에서 예외를 던지면 terminate되는 이유, 부분 생성된 객체 처리를 예제로 봅니다.