博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tr1::shared_ptr 代码范例
阅读量:4298 次
发布时间:2019-05-27

本文共 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/

你可能感兴趣的文章
LNMP 安装 thinkcmf提示404not found
查看>>
PHP empty、isset、innull的区别
查看>>
apache+nginx 实现动静分离
查看>>
通过Navicat远程连接MySQL配置
查看>>
phpstorm开发工具的设置用法
查看>>
Linux 系统挂载数据盘
查看>>
Git基础(三)--常见错误及解决方案
查看>>
Git(四) - 分支管理
查看>>
PHP Curl发送数据
查看>>
HTTP协议
查看>>
HTTPS
查看>>
git add . git add -u git add -A区别
查看>>
apache下虚拟域名配置
查看>>
session和cookie区别与联系
查看>>
PHP 实现笛卡尔积
查看>>
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>