[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
클래스는 Base1
과 Base2
클래스를 다중 상속 받았습니다. Derived
클래스의 소멸자가 호출될 때, Base1
, Base2
, 그리고 Derived
클래스의 소멸자가 각각 호출되는 것을 확인할 수 있습니다.
더 자세한 내용은 C++ 표준에 따라 가상 소멸자와 소멸자 호출 순서에 대한 규칙을 확인할 수 있습니다.
여기서 참조할만한 문헌: