Recientemente, estaba navegando por mi copia de C++ Pocket Reference de O'Reilly Media, y me sorprendió cuando encontré una breve sección y un ejemplo sobre la conversión definida por el usuario. tipos definidos:Conversiones definidas por el usuario en C++
#include <iostream>
class account {
private:
double balance;
public:
account (double b) { balance = b; }
operator double (void) { return balance; }
};
int main (void) {
account acc(100.0);
double balance = acc;
std::cout << balance << std::endl;
return 0;
}
he estado programando en C++ para un rato, y esta es la primera vez que he visto este tipo de sobrecarga de operadores. La descripción del libro de este tema es breve, dejándome con algunas preguntas sin respuesta sobre esta característica:
- ¿Es esta una característica particularmente oscura? Como dije, he estado programando en C++ por un tiempo y esta es la primera vez que me encuentro con esto. No he tenido mucha suerte para encontrar más material en profundidad sobre esto.
- ¿Es esto relativamente portátil? (Estoy compilando en GCC 4.1)
¿Se pueden realizar las conversiones definidas por el usuario a los tipos definidos por el usuario? p.ej.
operador std :: string() {/ * código * /}
Lo siento, pero una conversión implícita de 'account' a' double' es simplemente estúpida. – fredoverflow
¿Qué tiene eso que ver con la pregunta? –