Указаны на деструкторы, выдвинутые на стек. C ++ [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Указаны на деструкторы, выдвинутые на стек. C ++ [дубликат]

Сообщение Anonymous »

Я думаю о том, что стек раскручивается, когда здесь брошено исключение. В приведенном ниже простом примере, когда 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»