首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于函数返回static变量的引用解决方案

2012-04-13 
关于函数返回static变量的引用在Effective C++[1]的Item 23里面 作者讲inline const Rational& operator*(

关于函数返回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

热点排行