正文

OpenFOAM——autoPtr模板类2008-03-28 14:54:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bioexplore/33629.html

分享到:

autoPtr类是一个模板类,其主体结构如下:

其中,可以看出有一个私有变量T* ptr_;ptr_用来保存一个T类型的对象的指针。
该类提供两个构造函数:inline explicit autoPtr(T* = NULL);和复制构造函数inline autoPtr(const autoPtr<T>&);
析构函数: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的所有的功能。

阅读(4383) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册