如何超载一元和外部类?
你可以将一个类中的一元&
运算符重载为:
struct X
{
void* operator &()
{
return this;
}
};
以便它返回一个地址。 你如何在课堂之外重载它:
struct X
{
};
void* operator &(const X& x)
{
//how?
}
取参数的地址会导致无限递归。
在C ++ 11中,有template< class T > T* std::addressof(T& arg)
。
的std :: addressof
您也可以从Boost Utility获得C ++ 03的相同功能
链接地址: http://www.djcxy.com/p/73059.html