Mitsuba中随处可见ref 和 scheduler先说说class ref, 它在include\mitsuba\core\ref.h中定义templateclass ref{public: /// Create a NULL reference ref() : m_ptr(NULL...
分类:
其他好文 时间:
2015-06-05 17:22:02
阅读次数:
117
1、定义:
为其他对象提供一种代理以控制对这个对象的访问。
2、使用:
在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
3、作用:
代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了的作用和保护了目标对象的作用。
4、划分:
代理还分成远程代理、虚代理、保护代理和智能指针;
以下写了一个简单的demo;...
分类:
移动开发 时间:
2015-06-04 09:45:53
阅读次数:
159
Bound_Ptr.h 1 // -*- C++ -*- 2 3 //============================================================================= 4 /** 5 * @file Bound_Ptr....
分类:
其他好文 时间:
2015-06-04 00:56:05
阅读次数:
270
《Effective C++》在资源管理一节提到了智能指针,智能指针中最著名的当属auto_ptr和shared_ptr。本文主要研究两者的实现。auto_ptr的实现:templateclass auto_ptr{private: T *ap;public: explicit au...
分类:
其他好文 时间:
2015-06-03 17:35:48
阅读次数:
116
为什么要用智能指针?
我们知道在C++中,资源管理是个头疼的问题。资源管理最常做的就是内存管理。而指针用起来如果忘记归还,就会导致内存泄露。
比如:class Oneclass{};
int func(){
Oneclass* one=new Oneclass;
if(!one)return 1;
delete one;
return 0;
}可见,上面代码中,我...
分类:
编程语言 时间:
2015-06-02 09:29:59
阅读次数:
138
目前测试功能正常。若有不完善的地方在改进吧。时候不早了睡觉去,哎,翘课会被抓,不冒险了。晚安全世界O(∩_∩)O 1 /************************************************************************* 2 *my shared_...
分类:
其他好文 时间:
2015-05-28 01:56:48
阅读次数:
161
解决循环引用: 在知道存在循环引用的条件下,使用boost::weak_ptr,即弱引用来代替循环引用中的某个强引用,从而打破循环引用的环。由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete,比如流程太复杂,最终导致没有 delete,异常导致程序过早退出,...
分类:
编程语言 时间:
2015-05-27 22:39:10
阅读次数:
597
智能指针和普通指针的区别在于智能指针实际上是对普通指针加了一层封装机制,这样的一层封装机制的目的是为了使得智能指针可以方便的管理一个对象的生命期。智能指针内部有一个计数器,记录了当前内存资源到底有多少指针在引用(可以访问这个资源),当新增加一个可以访问这个资源的引用时,计数器会加1,反之会减去1,当...
分类:
其他好文 时间:
2015-05-27 22:23:48
阅读次数:
113
auto_ptr 智能指针(C98)#includeusing namespace std;void main(){//auto_ptrfor ( int i = 0; i a_p(p);}cin.get();}查看任务管理器:
分类:
其他好文 时间:
2015-05-26 21:14:33
阅读次数:
156
unique_ptr 智能指针(C++11) #include#include //内存using namespace std;void main(){ for ( size_t i = 0; i up(new double ); } cin.get();} 使用智能指针,系统会检测有多少个指针指向...
分类:
编程语言 时间:
2015-05-26 20:50:25
阅读次数:
194