Я думаю о том, что стек раскручивается, когда здесь брошено исключение. В приведенном ниже простом примере, когда Throw 505 выполняется, из того, что я понимаю, стек начинает раскручиваться, пока он не найдет блок улова, вызывая деструкторы на каждом объекте, созданный с начала блока Try. Я немного смущен тем, что происходит под капюшоном здесь. < /P>
class MyClass1
{
public:
MyClass1(){}
~MyClass1(){}
private:
int num1 = 1;
int num2 = 2;
};
class MyClass2
{
public:
MyClass2(){}
~MyClass2(){}
private:
int num1 = 3;
int num2 = 4;
};
int main()
{
try
{
MyClass1 mc1;
MyClass2 mc2;
throw 505; // Desctructors for mc1 and mc2 will get called, but how exactly?
}
catch (int myNum)
{
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... he-stack-c
Указаны на деструкторы, выдвинутые на стек. C ++ [дубликат] ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
«Окно не определено», но стек выглядит неверно; Как получить точный стек вызовов?
Anonymous » » в форуме Javascript - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-