相信我们平时使用C++
的时候都会用到STL
里面的很多容器,可以发现,对于这些容器里面的数据,当容器的生命周期到达结束的时候,里面的数据就会被很好地释放掉。
但是对于处于堆上和堆栈的不同数据,使用的方法也有所不同。
我们以以下的对象作为被操作者:
class Simple
{
public:
string name;
private:
size_t value;
public:
Simple(const Simple& rhs) :value(rhs.value), name("none")
{
cout << "creat simple" << endl;
};
Simple() :value(), name("none")
{
cout << "creat simple" << endl;
};
explicit Simple(size_t v) :value(value), name("none")
{
cout << "creat simple" << endl;
};
void DoSomething()
{
cout << "hello" << name << endl;
}
~Simple()
{
cout << "delete Simple " << name << endl;
}
};
然后运行如下代码,进行测试:
void test()
{
vector<Simpl