shared_ptr
2014-06-26 09:52
274 查看
// mem.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
//#include "../../../../../linux/mcsf/uih/include/external/boost/shared_ptr.hpp"
#include "boost/shared_ptr.hpp"
using namespace boost;
typedef shared_ptr<int> pInt;
class Shared
{
private:
pInt pa;
public:
Shared (pInt p): pa(p){}
void print()
{
std::cout<<" pa.use_count() = "<<pa.use_count()<<std::endl
<<" pa.value = "<<*pa<<std::endl;
}
};
void print(pInt pa)
{
std::cout<<" pa.use_count() = "<<pa.use_count()<<std::endl
<<" pa.value = "<<*pa<<std::endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
shared_ptr<int> pa(new int(100));
print(pa);
std::cout<<"=================="<<std::endl;
Shared s1(pa),s2(pa);
s1.print();
s2.print();
shared_ptr<int> sp (new int(10));
assert(sp);
*sp = 100;
assert(*sp == 100);
shared_ptr<int> sp2 = sp;
assert(sp == sp2);
assert(sp2.use_count() == 2);
sp2.reset(); // sp2 is null, but sp is still exist
assert(!sp2);
return 0;
}
输出结果
pa.use_count() = 2
pa.value = 100
==================
pa.use_count() = 3
pa.value = 100
pa.use_count() = 3
pa.value = 100
请按任意键继续. . .
相关文章推荐
- C++11智能指针(五):shared_ptr的循环引用的问题及weak_ptr
- 找不到std::shared_ptr
- shared_ptr解析
- Boost源码学习---shared_ptr.hpp
- Boost智能指针—shared_ptr(转载,收藏)
- 指针指针--shared_ptr简单实用方法
- SharedPtrControlBlock
- boost::shared_ptr的使用方法
- 5年后的OGRE3D,与从其中SHARED_PTR谈开
- boost shared_ptr 使用注意点。
- boost库学习之 shared_ptr
- shared_ptr陷阱
- 【C++11】新特性——共享资源的智能指针shared_ptr
- boost库 - shared_ptr实际应用
- shared_ptr的使用心得
- shared_ptr的线程安全
- 自己实现shared_ptr之JNShared_Ptr
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- shared_ptr的小文
- Ogre中的Smart Pointers——SharedPtr