C++ には戻り値の型に基づく正当なオーバーロードがないことを私は知っています。つまり、次のようなことはできません。
int operator ++ getOwner();
char operator ++ getOwner();
しかし、私は次のことに出くわしました:
https://stackoverflow.com/a/9569120/1376317
class Proxy
{
My const* myOwner;
public:
Proxy( My const* owner ) : myOwner( owner ) {}
operator int() const
{
return myOwner->getInt();
}
operator char() const
{
return myOwner->getChar();
}
};
私の質問は、この構成でオペレーターのオーバーロードがどのように機能するかです。この種のオーバーロードを取得するには、main.cpp でこれをどのように呼び出しますか。コンパイラは、正しいオーバーロードを呼び出す方法をどのように推測しますか?