У меня есть этот конкретный образец кода:Почему этот метод называется вместо другого?
struct ComplexNumber {
float _Re, _Im;
public:
float Re() const { return _Re; }
float& Re() { return _Re; }
float Im() const { return _Im; }
float& Im() { return _Im; }
};
, и я хотел бы знать, почему, когда я выполняю
ComplexNumber Num1;
cout << Num1.Re() << endl;
метод float& Re() { return _Re; }
который вызывается, вместо
float Re() const { return _Re; }
который, кажется, быть хорошо подготовленным для выполнения cout путем обеспечения данных с помощью const.
Право, спасибо – threaz
Я почти уверен [этот вопрос] (https://stackoverflow.com/questions/21469135/overload-resolution-c-for-const-member-functions) и его [выбранный ответ] (http://stackoverflow.com/a/21469596/1322972) описывают, что вы видите. – WhozCraig