我有一个类中的
std::vector
成员,其元素是boost::shared_ptr
指向Foo
类型对象的指针。
一个名为SetData()
的函数将一个指向新的Foo
对象的指针添加到该vector中。在Foo
的构造函数中,会对pData
指向的数据进行内部复制。
现在,当我调用Reset()
函数时,所有内存都会被真正释放吗?class myClass()
{
void SetData(char* pData, size_t nSize)
{
boost::shared_ptr<Foo> pFoo(new Foo(pData, nSize));
mVector.push_back(pFoo);
}
void Reset()
{
mVector.clear();
}
private:
std::vector<boost::shared_ptr<Foo>> mVector;
};