我正在阅读实现智能指针,我发现了以下代码,
template <class T>
class SmartPtr
{
public:
explicit SmartPtr(T* pointee) : pointee_(pointee);
SmartPtr& operator=(const SmartPtr& other);
~SmartPtr();
T& operator*() const
{
...
return *pointee_;
}
T* operator->() const
{
...
return pointee_;
}
private:
T* pointee_;
...
};
我无法理解以下内容,
THX @
答案 0 :(得分:2)
要点1.不一定,取决于智能指针的设计。有些像boost:shared_ptr
这样的人不会转让所有权。
点2.这些方法模拟智能指针上的正常指针操作。
答案 1 :(得分:0)
回答2.
:
模拟原始指针。您可以使用*ptr
返回它指向的对象(就像C指针一样),并且可以使用ptr->foo()
来调用foo
中的方法T
,(就像一个C指针)。
答案 2 :(得分:0)