3

您可以将&类中的一元运算符重载为:

struct X
{
   void* operator &()
   {
      return this;
   }
};

以便它返回一个地址。你将如何在课堂之外重载它:

struct X
{
};

void* operator &(const X& x)
{
    //how?
}

取参数的地址会导致无限递归。

4

1 回答 1

5

在 C++11 中,有template< class T > T* std::addressof(T& arg).

标准::地址

您还可以从Boost Utility获得 C++03 的相同功能

于 2012-06-28T09:55:52.933 回答