autoPtr 类
autoPtr 类
原作者:dingwklive (http://blog.sina.com.cn/dingwklive)原文地址:http://blog.sina.com.cn/s/blog_9a46351401017qkr.html
位置: ..\src\OpenFOAM\Memory\autoPtr\
智能指针,类似于STL中的auto_ptr(相关资料网上很多)。
使用中只需要记住 autoPtr的指针"独占"和"转移"特性,且不能用于STL容器内。
以下是autoPtr详细说明,转自 :http://blog.pfan.cn/bioexplore/33629.html
----------------------------------------------------------------------------------
autoPtr有一个私有变量T* ptr_,用来保存一个T类型的对象的指针。
该类提供两个构造函数:inline explicit autoPtr(T* = NULL);和复制构造函数inline autoPtr(const autoPtr&);
析构函数:inline ~autoPtr();用来在析构对象时,删除ptr_指向的对象所占的内存
成员函数:
inline bool valid() const; 如果ptr_指向某个对象,则返回true,否则返回false
inline T* ptr(); 返回指向ptr_指向对象的指针,并设置ptr_=NULL;
inline void set(T* p); 如果ptr_已经指向具体的对象,则抱错否则ptr_=p
inline void reset(T* p); 如果ptr_已经指向具体的对象,则首先删除该对象的内存,并设置ptr_=p;
inline void clear(); 调用reset(NULL);
inline T& operator()(); 如果ptr_指向了具体的对象,则返回该对象的拷贝
inline const T& operator()() const; operator()的const版本
inline operator const T&() const; 返回一个T类型对象的const引用
inline T* operator->(); 返回ptr_指针,该指针指向的对象可修改
inline const T* operator->() const; 返回ptr_指针,该指针指向的内容不能修改
以上就是autoPtr的所有的功能。
-------------------------------------------------------------------------
--------------------
水平有限,望指正
--------------------

浙公网安备 33010602011771号