可以重載的一元&
操作類內部爲:如何重載一元和外部類?
struct X
{
void* operator &()
{
return this;
}
};
,以便它返回的地址。你會如何在一個類之外超載它:
struct X
{
};
void* operator &(const X& x)
{
//how?
}
取參數的地址會導致無限遞歸。
可以重載的一元&
操作類內部爲:如何重載一元和外部類?
struct X
{
void* operator &()
{
return this;
}
};
,以便它返回的地址。你會如何在一個類之外超載它:
struct X
{
};
void* operator &(const X& x)
{
//how?
}
取參數的地址會導致無限遞歸。
只是在這裏猜測,但不會解決生成的代碼,遞歸調用相同的運算符? –
否,因爲在獲取地址之前,內部'addressof'轉換爲char *。 – gwiazdorrr
對,'addressof'代表你執行醜陋的轉換技巧以避免調用重載的'運算符&()'「 –
爲C++ 03相同的功能爲什麼你會使用操作符重載返回對象的地址?它已經這樣做了。 –
@BoPersson當然有趣:) – AMCoder