【发布时间】:2009-02-05 08:46:59
【问题描述】:
我有一个 Foo 对象和一个 std::list 保存它的实例。我的问题是,当我向列表中添加一个新实例时,它首先调用 ctor,然后调用 dtor。然后是另一个实例上的 dtor(根据 this 指针)。
单个实例被添加到列表中,但由于调用了它的 dtor(连同它的父级),因此无法按预期使用该对象。
这里有一些简化的代码来说明问题:
#include <iostream>
#include <list>
class Foo
{
public:
Foo()
{
int breakpoint = 0;
}
~Foo()
{
int breakpoint = 0;
}
};
int main()
{
std::list<Foo> li;
li.push_back(Foo());
}
【问题讨论】:
标签: c++ constructor stdlist