11.5 再一个例子

优质
小牛编辑
126浏览
2023-12-01

最初版本的convertToSeconds函数是这样的:

double convertToSeconds (const Time& time) {
  int minutes = time.hour * 60 + time.minute;
  double seconds = minutes * 60 + time.second;
  return seconds;
}

我们可以很直接的将其转换为成员函数:

double Time::convertToSeconds () const {
  int minutes = hour * 60 + minutes;
  double seconds = minutes * 60 + second;
  return seconds;
}

有趣的是,因为我们在函数中没有修改隐式参数,这里它应该被声明为const。但是,与不存在的参数相关的信息应该写在哪里并不是显而易见的。答案是——如例子所示——将const放在参数列表之后(本例中为空)。

上节中的print函数同样应该将其隐式参数声明为const。