Является ли порядок разрушения хорошо определенным в случае множественного наследования?Порядок уничтожения в случае множественного наследования
struct A
{
~A(){std::cout << "A\n";}
};
struct B
{
~B(){std::cout << "B\n";}
};
struct AB : public B, public A
{
~AB(){std::cout<<"AB\n";}
};
int main()
{
AB ab;
}
Для данного кода мой компилятор печатает:
AB
B
A
Buf я использую более сложные конструкции (в том числе CWinApp
), я получаю разные результаты. Итак, порядок четко определен? И если да, то какое правило заказа?
Да, разрушение в обратном порядке декларации. –
Какой компилятор вы используете, это то, что печатается? Должен ли AB, A, B. – Barry
Я использую Visual Studio 2013 – user1235183