我有這個特殊的代碼示例:爲什麼調用這個方法而不是另一個?
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; }
這似乎做好充分準備,通過使用const保護數據來執行cout。
對,謝謝 – threaz
我幾乎肯定[這個問題](https://stackoverflow.com/questions/21469135/overload-resolution-c-for-const-member-functions)及其[選定的答案] (http://stackoverflow.com/a/21469596/1322972)描述你所看到的。 – WhozCraig