本文共 913 字,大约阅读时间需要 3 分钟。
#include <memory> #include <iostream> #include "vector" #include "list" #include "Person.h" using namespace std; //using namespace tr1; // Cuse_autoDeleteDlg 对话框 typedef tr1::shared_ptr<CPerson> PtrPerson;typedef tr1::weak_ptr<CPerson> PtrWeakPerson; //expired()用于检测所管理的对象是否已经释放
// 声明变量
list<PtrPerson > m_vecPersons;
//初始化
m_vecPersons.push_back(PtrPerson(new CPerson));
m_vecPersons.push_back(PtrPerson(new CPerson)); m_vecPersons.push_back(PtrPerson(new CPerson)); m_vecPersons.push_back(PtrPerson(new CPerson)); m_vecPersons.push_back(PtrPerson(new CPerson));//调用
for (auto it = m_vecPersons.begin() ; it != m_vecPersons.end(); ++it)
{ PtrPerson& pPerson = (*it); CString strOutput; strOutput.Format(_T("%s,%d \n"), pPerson->m_strName,pPerson->m_age); OutputDebugString(strOutput); TRACE(_T("use_count = %d \n"),pPerson.use_count()); } m_vecPersons.clear(); //new出来的内存会自动释放结论:
很实用的智能指针。
再也不用管理内存的delete问题了。
转载地址:http://vanws.baihongyu.com/