11.9 最后一个例子
最后更新于:2022-04-01 06:23:24
最后一个例子是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值作为参数。最后一行返回结果对象。