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的所有的功能。

评论