首页 相关文章 More Effective C++:不要重载的操作符

More Effective C++:不要重载的操作符


  与C一样,C++使用布尔表达式简化求值法(short-circuit evaluation)。这表示一旦确定了布尔表达式的真假值,即使还有部分表达式没有被测试,布尔表达式也停止运算。例如:
  
  char *p;
  ...
  
  if ((p != 0) && (strlen(p) 10)) ...
  这里不用担心当p为空时strlen无法正确运行,因为假如p不等于0的测试失败,strlen不会被调用。同样:
  
  int rangeCheck(int index)
  {
   if ((index lowerBound) (index upperBound)) ...
  ...
  }
  假如index小于lowerBound,它不会与upperBound进行比较。
   
  很早以前上述行为特性就被反复灌输给C和C++的程序员,所以他们都知道该特性。而且他们也依靠于简短求值法来写程序。例如在上述第一个代码中,当p为空指针时确保strlen不会被调用是很重要的,因为C++标准说(正如C标准所说)用空指针调用strlen,结果不确定。
  [ 查看全文 ]

2016-02-19 标签:

More Effective C++:不要重载的操作符的相关文章

手机页面
收藏网站 回到头部