第四週目プロジェクト四-プログラム分析(4)

1134 ワード

/*
 *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」を外してみると、8行目に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)」に変更し、結果は変化しません.