当前位置: 代码迷 >> 综合 >> Boost库--功能介绍--boost::shared_ptr
  详细解决方案

Boost库--功能介绍--boost::shared_ptr

热度:84   发布时间:2024-01-29 16:10:45.0

??boost::shared_ptr是可以共享所有权的指针。如果有多个shared_ptr共同管理同一个对象时,只有这些shared_ptr全部与该对象脱离关系之后,被管理的对象才会被释放。 shared_ptr的管理机制其实并不复杂,就是对所管理的对象进行了引用计数,当新增一个shared_ptr对该对象进行管理时,就将该对象的引用计数加一;减少一个shared_ptr对该对象进行管理时,就将该对象的引用计数减一,如果该对象的引用计数为0的时候,说明没有任何指针对其管理,才调用delete释放其所占的内存。范例代码如下所示:

#include <iostream>
#include <string>
#include <boost/shared_ptr.hpp>class Class1{
public:Class1(){}Class1(std::string str){this->m_str = str; }~Class1(){}public:std::string m_str;
};
int _tmain(int argc, _TCHAR* argv[])
{boost::shared_ptr<Class1> sp1(new Class1("test"));std::cout << sp1.use_count() << std::endl;boost::shared_ptr<Class1> sp2 = sp1;std::cout << sp2.use_count() << std::endl;std::cout << sp1->m_str << std::endl;std::cout << sp2->m_str << std::endl;return 0;
}

??欢迎光临知了软件开发网络平台,本公司定制开发各类软件,主要方向为桌面专业软件开发和插件定制开发,桌面软件主要包括文字图形识别类软件,信息管理类软件,3D打印类软件,视频类软件以及其它涉及专业的各类图形图像处理软件。插件包含AE插件,AI插件,PS插件,PDF插件,3DMAX插件以及Word,Excel等Office插件开发。详情请咨询,微信QQ:312117271,手机:18928899728,邮箱: anjingzhi_sea@163.com.
公司网址:http://www.zhiliaos.com