У меня есть класс Rectangle с операторами преобразования как в double, так и в std::string:
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;
}
Я не понимаю, почему вызывается operator double(), а не operator std::string(). Насколько мне известно, согласно викибуку по C++, operator double является используется для преобразования Rectangle объектов в double.
Так что же здесь происходит? Связано ли это с тем, что конструктору передается int? Если да, то почему?
getArea()в образец. - person Zac Crites   schedule 16.09.2015