第四周项目四-程序分析(4)

/*
 *Copyright(c)2016,烟台大学计算机与控制工程学院
 *All rights reserved
 *文件名称:123.cpp
 *作    者:王蕊
 *完成日期:2016年3月23日
 *版 本 号:v1.0
*/
#include <iostream>
using namespace std;  
const double pi=3.1415926;  
float area(float r=6.5);//指定r的默认值为6.5 
 float volume(float h,float r=6.5); //指定r的默认值为6.5  
int main( )  
{      
   cout<<area()<<endl; //相当于area(6.5);    
   cout<<area(7.5)<<endl; //形参得到的值为7.5,而不是6.5     
   cout<<volume(45.6)<<endl; //相当于volume(45.6,6.5)      
   cout<<volume(34.2,10.4)<<endl; //h的值为34.2,r的值为10.4     
   return 0; 
 } 
 float area(float r)  
{     
   return pi*r*r; 
 } 
 float volume(float h,float r) 
 {     
   return pi*r*r*h; 
 }  

运行结果:012345

程序分析:

① 去掉第4行的“=6.5”试试,出错的原因是 第八行调用area函数时没有传参,也没有设置默认值,故出错。
② 将第14行改为“float area(float r=6.5)”,出错的原因是 声明和定义不能都定义默认参数,会产生冲突,默认参数一般是在声明时定义的。
③ 将第5行“float h,float r=6.5”改为“float h=1,float r”,出错的原因是 默认参数的声明必须放在形参列表的最右端,否则出错。
④ 将第5行改为“float volume(float h=0,float r=6.5)”,带来的改变将是 结果没有变化。




你可能感兴趣的:(第四周项目四-程序分析(4))