codecamp

C++ 最后一个例子

最后一个例子是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值作为参数。最后一行返回结果对象。

C++ 初始化还是构造?
C++ 头文件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }