//1,release函数只是简单的转移对内存的拥有权,自己变成null,不会delete,一般在将所有权转移给别的智能指针的时候使用。具体可参加源码。 例:#include#include using namespace std;class A{public: A(int a):m_na(a) { cout<<"A cont" < <<"A dect"< p(new A(1)); p.release();//注意 release后,p指向的内存还没被释放。以后也不会释放,存在泄露 //所有权转移出去了,只是没有别的智能指针接受而已。 if(p.get()==NULL) { cout<<"null"<
新浪博客以前的旧笔记:
笔记1:release :相当于get()后再转移所有权。并没有释放。例如: auto_ptr fb(fa); // 相当auto_ptr fb(fa.release()); 智能指针赋值时,自动release转移 if( fa.get()==NULL) cout<< "fa null" <