Ich habe eine Rectangle
Klasse mit Konvertierungsoperatoren sowohl auf double
und std::string
:Unklare Verwendung von Operator double()
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;
}
Ich verstehe nicht, warum operator double()
aufgerufen wird, anstatt operator std::string()
. Soweit ich weiß, C++ wikibook, operator double
wird verwendet, um Rectangle
Objekte zu double
zu konvertieren.
Also, was ist hier los? Ist es mit der Tatsache verbunden, dass ein int
an den Konstruktor übergeben wird? Wenn ja warum?
Was bedeutet es sogar, ein Rechteck in ein Doppel zu konvertieren. –
ich denke (double) r oder sowas –
@AlexGoft Nein, der andere Alex meinte "was heißt das logisch *?". Auf den ersten Blick erscheint die Operation bedeutungslos. –