1. 程式人生 > >C++Boost庫學習之智慧指標 shared_ptr

C++Boost庫學習之智慧指標 shared_ptr

目錄

1.共享指標shared_ptr ^

  使用例子 ^

#include<boost/shared_ptr.hpp>
using namespace boost;
using std::cout;
using std::endl;

struct A
{
    int a = 10;
};
int main()
{
    A *p = new A;
    shared_ptr<A> ptr(new A(*p));
    shared_ptr<A> ptr1(ptr);

    cout << ptr1.owner_before(ptr) << endl;
    cout
<< "共享指標的數量:" << ptr.use_count() << endl; cout << "通過指標訪問成員:" << ptr.get()->a << endl; cout << "是否是單個:" << ptr.unique() << endl; //相當於祈構函式dellete所有共享指標 ptr.reset(); shared_ptr<A> ptr2(new A(*p)); cout << "共享指標的數量:"
<< ptr2.use_count() << endl; cout << "通過指標訪問成員:" << ptr2.get()->a << endl; cout << "是否是單個:" << ptr2.unique() << endl; }

2.weak_ptr ^

  使用例子 ^