Ho una classe Rectangle
con operatori di conversione sia double
e std::string
:uso non chiara dell'operatore doppio()
class Rectangle
{
public:
Rectangle(double x, double y) : _x(x), _y(y) {}
operator std::string();
operator double();
private:
double _x, _y;
double getArea() {return _x * _y;}
};
int main()
{
Rectangle r(3, 2.5);
cout << r << endl;
return 0;
}
Non capisco il motivo per cui operator double()
viene invocato, piuttosto che operator std::string()
. Per quanto ne so, in base a C++ wikibook, operator double
viene utilizzato per convertire gli oggetti Rectangle
in double
.
Quindi cosa sta succedendo qui? È legato al fatto che un int
viene passato al costruttore? Se è così, perché?
Che cosa significa anche convertire un rettangolo in un doppio. –
immagino (doppio) o altro –
@AlexGoft No, l'altro Alex intendeva "cosa significa * logicamente *?". A prima vista, l'operazione sembra priva di significato. –