[Boost] Boost智能指针——boost::shared_ptr(使用及原理分析)
1. boost::shared_ptr的用法 下面用一个简单的例子说明shared_ptr的用法: #include <stdio.h> #include <boost/shared_ptr.hpp> class A { public : void print() { printf( " class A print!\n " ); } }; int main( int argc, char ** argv) { boost::shared_ptr <A> a1( new A()); a1 -> print(); } shared_ptr不用手动去释放资源,它会智能地在合适的时候去自动释放。如上面的例子,a1指向的对象将会在程序结束的时候自动释放(程序结束时所有申请的资源都会被释放,这只是为了说明其作用)。再来看下面的例子: //同上 int main( int argc, char ** argv) { boost::shared_ptr <A> a1( new A()); a1 -> print(); printf( " a1 reference count: %d\n " , a1.use_count()); boost::shared_ptr <A> a2 = a1; printf( " a1 reference count: %d\n " , a1.use_count()