gpt4 book ai didi

c++ - 运行析构函数,当构造函数抛出异常时

转载 作者:行者123 更新时间:2023-11-28 03:28:27 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Is the destructor called if the constructor throws an exception?

我有一个问题要问你。当构造函数抛出异常时,是否执行析构函数?示例代码:

#include <cstdio>

struct Test
{
Test (void)
{
throw 100;
}

~Test (void)
{
printf ("~Test\n");
}
};

int main (void)
{
try
{
Test test;
}
catch (int value)
{

}
}

运行此代码时,“~Test”不会显示。好的,我可能理解这种行为。假设 Test 具有动态分配的成员,这些成员在构造函数内部分配并在析构函数中删除。当它们在构造函数中分配后抛出异常时,它们会发生什么?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com