VTK基本概念之VTK智能指针
来源:互联网 发布:网络肥皂是什么意思啊 编辑:程序博客网 时间:2024/05/29 04:46
1、概念
如果很多对象有相同的值,在程序里没有必要将这个值存储多次。更好的办法是让所有的对象共享这个值。这么做不但节省内存,而且可以是程序运行得更快,因为不需要构造和析构这个值得副本。引用计数就是这样的一个技巧,它允许多个有相同值的对象共享这个值。
引用计数是个简单的垃圾回收体系,只要其他对象引用某对象(记为对象O),对象O就会增加一个引用计数,当最后引用对象O的对象移除,O对象就会自动析构。
2、实现
vtk用vtkSmartPointer实现引用计数。智能指针会自动管理引用计数的增加和减少,若检测到某对象的引用计数值减少为0,则会自动释放该对象的资源,从而达到自动管理内存的目的。
VTK中创建一个对象可以用两种方法:一种是使用vtkObjectBase里静态成员变量New(),用Delete()方法析构。另外一种就是智能指针vtkSmartPointer 。
vtkSmartPointer是一个模板类,所需的模板参数就是待创建的对象的类名。
vtkSmartPointer<类名> 实例对象 = vtkSmartPointer<类名>::New()
不能把对象的原始指针赋给智能指针。
正确:
vtkSmartPointer<vtkImageData> image = vtkSmartPointer<vtkImageData>::New()
错误:
vtkSmartPointer<vtkImageData> image = vtkImageData::New()
智能指针类型可以作为函数的返回类型
vtkSmartPointer<vtkImageData> MyFunction(){ vtkSmartPointer<vtkImageData> myObject = vtkSmartPointer<vtkImageData>::New(); return myObject;}
智能指针类型也可以作为类的成员变量,而且会使类在析构时更加容易,不用人为去做任何释放内存的事件。
0 0
- VTK基本概念之VTK智能指针
- VTK之智能指针详解
- vtk智能指针
- VTK学习-智能指针
- VTK基本概念之灯光
- VTK基本概念之光照
- VTK修炼之道80:VTK开发基础_智能指针与引用计数
- VTK基本概念之主要对象
- VTK基本概念之坐标系统
- vtk智能指针->对智能指针的理解和使用
- VTK
- VTK
- vtk
- vtk
- vtk
- VTK
- VTK医疗方面的基本概念
- VTK之基于Qt的VTK应用程序
- 论文结构及写作
- 京东实习笔试——异或
- SQL练习题
- 蓝桥杯赛后总结
- SpringMVC中文件上传,添加enctype="multipart/form-data"后表单其他属性为空
- VTK基本概念之VTK智能指针
- 如何创建只读权限oracle账户-同义词
- 实现键盘对Camera的控制
- openstack通过sqlalchemy修改数据库的表结构
- 数字反转
- HDU 1272 小希的迷宫
- (2017、4/8/ D
- Aibohphobia
- 025替换元素内容