codecamp

C++ 将代码组合成函数

正如你所期待的那样,一旦定义了一个新函数,你既可以将它用作表达式的一部分,也可以用现有的函数构造新的函数。举个例子,给定圆心和圆周上的一点,如何计算圆的面积?

假设圆心坐标保存在变量xc和yc中,而圆周上那点的坐标是xp和yp。第一步就是计算圆的半径,也就是这两点间的距离。幸运的是,我们前面定义的distance函数就是计算两点间距离的。

double radius = distance(xc,yc,xp,yp);

第二步就是使用半径计算圆面积并返回。

   double result = area(radius);
   return result;

然后将这两步封装在一个函数中:

double fred(double xc,double yc,double xp,double yp){
  double radius = distance(xc,yc,xp,yp);
  double result = area(radius);
  return result;
}

函数名fred可能看起来很奇怪。我下一节再解释原因。

临时变量radius和area对开发和调试而言是有意义的,程序工作正常之后我们就可以通过组合函数调用使代码更简洁:

double fred(double xc,double yc,double xp,double yp){
  return area(distance(xc,yc,xp,yp));
}
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; }