C++ - 重载I/O操作符的注意(四)

2013-11-20 14:24:42 · 作者: · 浏览: 546

 

  std::istream &operator》 (std::istream& is, HighHeel& hh)

  {

  is 》 hh.wedgeHeel 》 hh.kittenHeel 》 hh.stilettoHeel

  》 hh.kinkyBoot 》 hh.thighHighBoot;

  if ( (is.rdstate() & is.failbit) != 0) //检查错误位

  std::cerr 《 "Error to input!" 《 std::endl;

  if (!is)

  hh = HighHeel();

  return is;

  }

  HighHeel operator+ (const HighHeel& lhs, const HighHeel& rhs)

  {

  HighHeel sum = lhs;

  sum.wedgeHeel += rhs.wedgeHeel;

  sum.kittenHeel += rhs.kittenHeel;

  sum.stilettoHeel += rhs.stilettoHeel;

  sum.kinkyBoot += rhs.kinkyBoot;

  sum.thighHighBoot += rhs.thighHighBoot;

  return sum;

  }

  int main (void) {

  HighHeel hh;

  std::cout 《 hh 《 std::endl;

  std::cout 《 "Please input heels quantity (5 numbers) :" 《 std::endl;

  std::cin 》 hh;

  std::cout 《 hh 《 std::endl;

  HighHeel hh2;

  std::cout 《 hh + hh2 《 std::endl;

  return 0;

  }