第四週目プロジェクト四-プログラム分析(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)」に変更し、結果は変化しません.