[c++] 소멸자 호출 순서
-
수동으로 객체 생성 및 소멸하는 경우: 객체를 수동으로 생성하고 delete 키워드를 사용해서 수동으로 메모리를 해제하는 경우, 소멸자는 객체가 삭제되는 시점에 호출됩니다.
MyClass* obj = new MyClass(); delete obj;
-
자동 변수의 수명이 끝나는 경우: 함수 내에 선언된 객체가 해당 함수의 실행이 종료될 때 소멸됩니다.
void myFunction() { MyClass obj; // 함수 실행 완료 시 obj의 소멸자가 호출됨 }
-
전역 객체의 소멸: 프로그램이 종료될 때 전역으로 선언된 객체들의 소멸자가 호출됩니다.
이러한 다양한 상황에서 소멸자는 객체의 소멸과 함께 호출되며, 상위 클래스와 하위 클래스의 상속 관계일 때에는 가장 하위 클래스의 소멸자부터 호출되고, 상위 클래스의 소멸자가 호출됩니다.
더 깊은 내용이나 예제 코드는 C++ 참조 사이트에서 확인할 수 있습니다.