[英]Smart Pointers in templates c++
创建一个 class 模板
SmartPointer
,该模板应包含指向任何 object 的指针,并在调用 ZA2F2ED4F8EBC0ABC1CDC4 的析构函数时删除相同的 object。 为了使智能指针的行为与原始指针的行为相同,您必须重叠运算符*
和->
。
所以,这是我的任务,我已经完成了这段代码,但是->
运算符不行。 如果有人知道如何解决它,请帮助我。
template <class T>
class SmartPointer {
private:
T* x;
public:
T& operator*() {
return *x;
}
T& operator->(){
return this();
}
SmartPointer(T *X);
~SmartPointer();
};
template<class T>
SmartPointer<T>::SmartPointer(T *X) {
this->x = X;
}
template<class T>
SmartPointer<T>::~SmartPointer() {
delete x;
}
operator->
function 应该返回一个指针。 它应该是一个指向包装好的 object 的指针:
T* operator->()
{
return x;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.