codecamp

C++ 另一个例子

我们来把increment函数转换为成员函数。我们再次将其中一个参数变成this。然后检查整个函数并使所有变量被隐式访问。

void Time::increment (double secs) {
  second += secs;

  while (second >= 60.0) {
     second -= 60.0;
     minute += 1;  
  }
  while (minute >= 60.0) {
     minute -= 60.0;
     hour += 1;
  }
} 

顺便说一句,请记住这并非是该函数的最高效实现。如果你在第九章没有这么做,那你现在应该写一个更有效率的版本。

我们可以复制第一行到结构体定义中来声明这一函数。

struct Time {
   int hour, minute;
   double second;

   void Time::print();
   void Time::increment(double secs);
};

为了调用(call)这函数,我们再次需要通过Time对象调用(invoke)它:

Time currentTime = { 9, 14, 30.0};
currentTime.increment (500.0);
currentTime.print ();

程序输出9:22:50。

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; }