gpt4 book ai didi

c++ - 容器超出范围和内存管理

转载 作者:行者123 更新时间:2023-11-30 02:02:37 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Does std::list::remove method call destructor of each removed element?

假设我有这个:

void f(...)
{
.
.
std::list<X*> xList;
.
// Then i fill the list
std::list<X*>::iterator iter;
for (iter = xList.begin(); iter != xList.end(); ++iter)
{
*iter = new X();
}

}

当 xList 超出范围时,我知道容器应该调用列表中包含的对象的析构函数?首先,这是真的吗?

如果是这样,那么既然列表包含指向类 X 的指针,当 xList 超出范围时,不应该调用 X 的析构函数吗?从而释放 X 持有的任何内存?

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