11.9 最后一个例子

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

最后一个例子是addTime:

Time addTime2 (const Time& t1, const Time& t2) {
   double seconds = convertToSeconds (t1) + convertToSeconds (t2);
   return makeTime (seconds);
}

我们要对该函数做一些改变,包括:

  1. 把函数名addTime改成Time::add。

  2. 把第一个参数替换成隐式参数,并将它声明为const。

  3. 把原来的makeTime改成构造函数调用。

结果如下:

Time Time::add (const Time& t2) const {
   double seconds = convertToSeconds () + t2.convertToSeconds ();
   Time time(second);
   return time;
}

第一次调用convertToSeonds时,没有显式的对象!在一个成员函数中,编译器假设我们要在当前对象上调用函数。因此,第一次是在this上调用,第二次是在t2上调用。

函数接下来一行调用了构造函数,把单个double值作为参数。最后一行返回结果对象。