0
我使用的是Visual Leak Detector,它说我向vector<unique_ptr<Worker>> Workers
添加对象时发生内存泄漏。向向量添加对象时发生内存泄漏<unique_ptr <Type>>
我得到的基类名为Worker
与私人字段名称和一个派生类Builder
与私人诠释砖块。
这是我如何将新对象添加到vector Workers
。
Builder b = Builder(name, stoi(bricks));
Workers.push_back(make_unique<Builder>(b)); // this is the line with memory leak
你能告诉我该怎么做,以防止在这种情况下的内存泄漏?
编辑:
我释放载体的记忆是这样的:
实施vector<unique_ptr<Worker>>().swap(Workers);
Worker & Builder
Worker::Worker(string name)
{
this->_name = name;
}
工人的析构函数是空白。
Worker::~Worker()
{
}
Builder::Builder(string name, int bricks) : Worker(name)
{
this->_bricks = bricks;
}
Builder的析构函数为空。
Builder::~Builder()
{
}
'工作人员'有一个'虚拟'析构函数吗? – Praetorian
你可以显示'Worker'&'Builder'的实现吗 –
工作者的析构函数是空白的,因为只有private:string名字; –