Sto cercando di sovraccaricare l'operatore dereference, ma compilando il codice seguente genera l'errore 'initializing' : cannot convert from 'X' to 'int'
:sovraccarico dereference operatore
struct X {
void f() {}
int operator*() const { return 5; }
};
int main()
{
X* x = new X;
int t = *x;
delete x;
return -898;
}
Che cosa sto facendo di sbagliato?
'operatore int 'ha un sacco di trucchi ed è meglio evitare. L'operatore di dereferenziazione ha un uso legittimo come emulazione puntatore. – Potatoswatter
@David: quelli che convertono in 'bool' ne hanno uno in più rispetto agli altri, ma forse è un drop nel bucket; v) – Potatoswatter
@David: la domanda riguarda' int operator * ', non' operator int * ' – visitor