C++ 什么是&;**什么意思?

C++ 什么是&;**什么意思?,c++,operator-overloading,smart-pointers,C++,Operator Overloading,Smart Pointers,在文件“memory”中的·std::unique_ptr·code中,我看到操作符重载函数如下 typename tr1::add_reference<_Ty>::type operator*() const { // return reference to object return (*this->_Myptr); } pointer operator->() const { // return pointer to class object

在文件“memory”中的·std::unique_ptr·code中,我看到操作符重载函数如下

typename tr1::add_reference<_Ty>::type operator*() const
{   
   // return reference to object
   return (*this->_Myptr);
}

pointer operator->() const
{
  // return pointer to class object
   return (&**this);
}
typename tr1::add_reference::type operator*()const
{   
//返回对对象的引用
返回(*本->\u Myptr);
}
指针运算符->()常量
{
//返回指向类对象的指针
返回(&**this);
}

第二个函数中的
&**
是什么意思?谢谢。

是指向
唯一\u ptr
对象的指针

*此
是对
唯一\u ptr
对象的引用

**此
使用
运算符*
(即
*此->\u Myptr
)取消对
唯一ptr的引用


因此,
&**this
是指向
unique\u ptr
(即
&(*this->\u Myptr)
)指向的对象的指针。

根据发布的代码,
**this
正在调用
操作符*
重载,该重载返回对对象的引用。因此,
&**此
成为返回对象的地址

换句话说,
**此
(*此->\u Myptr)
相同,
&**此
&(*此->\u Myptr)
相同