[c++] 다중 상속에서의 소멸자 호출 순서

다음은 다중 상속에서의 소멸자 호출 순서를 보장하는 예시 코드입니다.

#include <iostream>
using namespace std;

class Base1 {
public:
    virtual ~Base1() { cout << "Base1 소멸자 호출" << endl; }
};

class Base2 {
public:
    virtual ~Base2() { cout << "Base2 소멸자 호출" << endl; }
};

class Derived : public Base1, public Base2 {
public:
    virtual ~Derived() { cout << "Derived 소멸자 호출" << endl; }
};

int main() {
    Base1* ptr = new Derived();
    delete ptr;
    return 0;
}

이 예시 코드에서 Derived 클래스는 Base1Base2 클래스를 다중 상속 받았습니다. Derived 클래스의 소멸자가 호출될 때, Base1, Base2, 그리고 Derived 클래스의 소멸자가 각각 호출되는 것을 확인할 수 있습니다.

더 자세한 내용은 C++ 표준에 따라 가상 소멸자와 소멸자 호출 순서에 대한 규칙을 확인할 수 있습니다.

여기서 참조할만한 문헌: