问题关于C++中的&运算符

Sao*_*obi 1 c++ pointers wrapper

我正在查看Wrapper类的.h文件.该类包含一个私有成员:

T* dataPtr;
Run Code Online (Sandbox Code Playgroud)

(其中,T是如template < class T >在.h文件的顶部定义)

该类提供了两个"*重载运算符"方法:

T& operator*()
{
   return *dataPtr;
}

const T& operator*() const
{
  return *dataPtr;
}
Run Code Online (Sandbox Code Playgroud)

两者都只是简单地返回*dataPtr,但*dataPtr实际上用简单的英语返回的符号是什么?它如何适合返回类型" T&"?

Anz*_*rio 6

返回类型T&表示您正在返回T对象实例的引用.dataPtr是一个指针,您可以使用*"取消引用"(获取指针的引用值/实例).