[c++] 소멸자 호출 순서
  1. 수동으로 객체 생성 및 소멸하는 경우: 객체를 수동으로 생성하고 delete 키워드를 사용해서 수동으로 메모리를 해제하는 경우, 소멸자는 객체가 삭제되는 시점에 호출됩니다.

     MyClass* obj = new MyClass();
     delete obj;
    
  2. 자동 변수의 수명이 끝나는 경우: 함수 내에 선언된 객체가 해당 함수의 실행이 종료될 때 소멸됩니다.

     void myFunction() {
         MyClass obj;
         // 함수 실행 완료 시 obj의 소멸자가 호출됨
     }
    
  3. 전역 객체의 소멸: 프로그램이 종료될 때 전역으로 선언된 객체들의 소멸자가 호출됩니다.

이러한 다양한 상황에서 소멸자는 객체의 소멸과 함께 호출되며, 상위 클래스와 하위 클래스의 상속 관계일 때에는 가장 하위 클래스의 소멸자부터 호출되고, 상위 클래스의 소멸자가 호출됩니다.

더 깊은 내용이나 예제 코드는 C++ 참조 사이트에서 확인할 수 있습니다.