这段代码看起来很奇怪:
const double square(double x) {
return x*x;
}
常识告诉我,const
在这种情况下意味着要么
- 该函数返回一个
const double
或者
- 它承诺不会改变
double
传入的值。但它是按值传入的!我不明白
或者
- 我知道
const member functions
承诺不会改变*this
,但这甚至不是成员函数。
编辑
const double
如果您可以将结果保存在非const
变量中并进行编辑,那么返回 a 有什么意义?
double var = square(4.5); // no compile error
var = 0.3;