shared_ptr

省去对象指针的显示delete

typedef tr1::shared_ptr<int> IntPtr;

 

IntPtr fun()

{

IntPtr p = new int(3);

return p;         

}

 

int main()

{

1     IntPtr t = fun();

cout<<endl;

2    fun();

cout<< endl;

}

objdump后观察汇编代码,得出如下结论

1:执行完后直接下一行语句,再进行sharedptr的释放动作;

2:fu n执行后,先进行sharedptr的释放工作,再执行下一条cout语句

posted @ 2015-03-18 16:45  明夫人  阅读(168)  评论(0编辑  收藏  举报