最后一个例子是addTime:
Time addTime2 (const Time& t1, const Time& t2) {
double seconds = convertToSeconds (t1) + convertToSeconds (t2);
return makeTime (seconds);
}
我们要对该函数做一些改变,包括:
把函数名addTime改成Time::add。
把第一个参数替换成隐式参数,并将它声明为const。
结果如下:
Time Time::add (const Time& t2) const {
double seconds = convertToSeconds () + t2.convertToSeconds ();
Time time(second);
return time;
}
第一次调用convertToSeonds时,没有显式的对象!在一个成员函数中,编译器假设我们要在当前对象上调用函数。因此,第一次是在this上调用,第二次是在t2上调用。
函数接下来一行调用了构造函数,把单个double值作为参数。最后一行返回结果对象。