常用函数
//初始化
osg::ref_ptr<osg::Node>node = NULL;
智能指针.release() 相当于先get()再reset()
智能指针.get() 是获取原始指针
智能指针.reset() 是释放智能指针将计数器置0
智能指针.valid() 返回bool 表示指针是否为空
release()
使用栈区空间保存“堆区”指针,使函数结束时传递的数值成功被传递。
避免值传递时返回野指针
例
c语言指针,return以及函数返回值
语法
return root.release();
底层代码
new 一个指针保存原指针,将原指针计数-1,返回new的指针
T* release()
{
T* tmp=_ptr;
if (_ptr)
_ptr->unref_nodelete();
_ptr=0;
return tmp;
}
get()
相当于直接返回指针
语法
return root.get();
底层代码
T* get() const
{
return _ptr;
}