博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
osg(OpenSceneGraph)学习笔记1:智能指针osg::ref_ptr<>
阅读量:4482 次
发布时间:2019-06-08

本文共 1194 字,大约阅读时间需要 3 分钟。

OSG的智能指针,osg::ref_ptr<>

osg::Referenced类管理引用计数内存块,osg::ref_ptr需要使用以它为基类的其它类作为模板参数。

osg::ref_ptr<>类模板重新实现了一系列C++重载符和成员函数,主要有:

  • T* get(): 返回管理的指针, { return _ptr; }
  • T& operator*(): 返回间接引用,{ return *_ptr; }
  • T* operator->():  { return _ptr; }
  • operator=(): 各种赋值
  • operator==(), operator!=(), and operator!():
  • valid(): { return _ptr!=0; }
  • release():

简单示例:

#include 
#include
#include
class MonitoringTarget : public osg::Referenced{public: MonitoringTarget(int id) : _id(id) { std::cout << "构造目标 " << _id << std::endl; }protected: virtual ~MonitoringTarget() { std::cout << "目标销毁 " << _id << std::endl; } int _id;};int main(int argc, char *argv[]){ osg::ref_ptr
target = new MonitoringTarget(0); std::cout << "引用前引用计数为: " << target->referenceCount() << std::endl; osg::ref_ptr
anotherTarget = target; std::cout << "引用后引用计数为: " << target->referenceCount() << std::endl; for (unsigned int i = 1; i<5; ++i) { osg::ref_ptr
subTarget = new MonitoringTarget(i); }}

 

转载于:https://www.cnblogs.com/yaoyu126/p/5761445.html

你可能感兴趣的文章
html怎么加入编辑器,HTML 编辑器
查看>>
python发挥程度_你为什么用 Python?
查看>>
file 选择的文件胖多有多大_「HTML5 进阶」FileAPI 文件操作实战,内附详细案例,建议收藏...
查看>>
玄惭 mysql_阿里云数据库专家玄惭的“武功”全记录之最佳实践、双十一特别篇...
查看>>
c mysql 时间段查询_mySql 时间段查询
查看>>
mysql sql乱码怎么解决_MYSQL数据库导入SQL文件出现乱码如何解决
查看>>
mysql的存储过程与事务_mysql的存储过程与事务入门
查看>>
java程序员闯关题网站_Java程序员每周必逛的十大学习网站
查看>>
python面试装饰器_Python测开面试题之装饰器
查看>>
flashcache mysql_flashcache的实现与分析
查看>>
linux shell 里面执行python 程序_Linux下编写脚本Shell和Python的区别?
查看>>
python中if elif语句优化_python – 最有效的方式做一个if-elif-elif-else语句当else做的最多?...
查看>>
win10 配置 maven_home 一会儿成功一会儿失败_在macbook上运行移动硬盘里的win10和macos...
查看>>
python怎么画多重饼状图_Python通过matplotlib画双层饼图及环形图简单示例
查看>>
棋盘最短路径 python_Dijkstra 最短路径算法 Python 实现
查看>>
eclipse配置mysql教程_在Eclipse连接mysql-----配置jbdc_MySQL
查看>>
java map合并_java 实现合并map示例Demo1
查看>>
java 8 string_String.join() --Java8中String类新增方法
查看>>
java 布局教程_java布局学习(新)
查看>>
你真的会写Java吗?
查看>>