osg程序开发中,要尽量使用osg::ref_ptr<T*>。
这个智能指针构建起osg的对象树(绝大部分osg类都是继承于osg::Referenced,即可计数对象),类似于Qt的对象树,负责其内存的管理。
智能指针是个模板类。比如这样一个定义:
osg::ref_ptrosgViewer::Viewer viewer=new osgViewer::Viewer;
这里,viewer本质上是一个ref_ptr对象(并非是指针),而之所以可以将new返回的指针赋给它是因为osg::ref_ptr重写了赋值操作符。而之所以可以对viewer解引用作操作,是因为osg::ref_ptr重写了操作符。