关于函数返回static变量的引用
在Effective C++[1]的Item 23里面 作者讲
inline const Rational& operator*(const Rational& lhs,const Rational& rhs);
{
static Rational result;
//....
return result;
}
返回一个static Rational Object 的 Reference.
然后说这样会造成 (a*b) == (c*d)一定返回True
不知道为何。请高人讲解下
[解决办法]
static Rational result;
// ...
return result;
result是静态变量,在内存中只有一份,每次调用*操作符函数改变的都是同一个result。
(a*b) == (c*d) -> result == result