C ++クラシック関数の例-関数の定義と呼び出しメソッド、オーバーロードされた関数、およびシステム関数の使用

1.関数定義形式:
戻り型関数名(パラメーターリスト)
{ 関数本体; }

  • カスタム関数の戻りタイプは、int、double、charなどです。戻り値がない場合、タイプはvoidになる可能性があります。
  • 関数名は識別子であり、その名前は識別子の規則に従って命名する必要があります。
  • パラメータリストには1つ以上のパラメータを含めることができます。パラメータはコンマで区切ります。各パラメータはパラメータタイプとパラメータ名で構成されます。パラメータリストは空にすることもできます。
  • 戻り型がvoidであるカスタム関数を除いて、関数本体の少なくとも1つのステートメントは、関数の値を返す戻り式です。

質問の例:
1。ファーレンハイト温度をセルシウス温度に変換する関数を記述します。変換式は次のとおりです。C=(F-32)* 5/9

#include<iostream>
using namespace std;
//定义一个转换温度的函数
int exchange(int F)
{
    
       
 int C;    
 C=(F-32)*5/9;	 
 return C;
 }
 void main()
 {
    
    	
 int x;	
 cin>>x;
 cout<<exchange(x)<<endl;//在主函数中调用exchange()函数
 }

入力:32
出力:0

2.オーバーロードされた関数
オーバーロードされた関数は関数の特殊なケースです。使いやすさのために、C ++では同じスコープで同じ名前の複数の関数を宣言できますが、これらの関数の正式なパラメーターは同じ名前です(パラメーターの数とタイプを参照してください)。または順序)が異なる必要があります。つまり、同じ機能を使用して異なる機能を完了します。これはオーバーロードされた関数です。

例:
2。オーバーロード関数max1を記述して、それぞれ2つの整数、3つの整数、2つの浮動小数点数、および3つの浮動小数点数の最大値を取得します。

#include<iostream>
using namespace std;
int maxl(int x ,int y)//返回两个整数中的最大值
{
    
    
return (x>y?x:y);
}
int maxl(int x,int y,int z)//返回三个整数中的最大值
{
    
      
 int t;
 t=maxl(x,y);
 return (t>z?t:z);
 }
 float maxl(float x,float y)//返回两个浮点数中的最大值
 {
    
    	
 return (x>y?x:y);
 }
 float maxl(float x,float y,float z)//返回三个浮点数中的最大值
 {
    
       
        int t;
 	t=maxl(x,y);	
 	return (t>z?t:z);
 	}
 void main()
 {
    
    
 int a,b,c;
 float x,y,z;
 cout<<"输入两个整数:"<<endl;
 cin>>a>>b;
 cout<<"大:"<<maxl(a,b)<<endl;
 cout<<"输入三个整数:"<<endl;
 cin>>a>>b>>c;
 cout<<"大:"<<maxl(a,b,c)<<endl;
 cout<<"输入两个浮点数:"<<endl;
 cin>>x>>y;cout<<"大:"<<maxl(x,y)<<endl;
 cout<<"输入三个浮点数:"<<endl;
 cin>>x>>y>>z;
 cout<<"大:"<<maxl(x,y,z)<<endl;
 }

例:
2つの整数を入力:2 9
大:9
3つの整数を入力:3 8 6
大:8
2つの浮動小数点数を入力:3.0 9.7
大:9.7
3つの浮動小数点数を入力:4.6 8.9 7.3
大:8

上記のプログラムで宣言された4つの関数は、互いにオーバーロードされた関数であり、パラメーターの種類とパラメーターの数が異なる2つの条件の1つまたは2つを満たします。コンパイラーは、異なるパラメーターに従って呼び出される関数を自動的に検出します。関数。

3.システム関数pow(x、y)を使用してxyの値を計算し、ヘッダーファイルmath.hを含めることに注意してください。

#include<iostream>
#include<math.h>
using namespace std;
void main()
{
    
    	
int x,y;	
cout<<"x=";	
cin>>x;	
cout<<"y=";	
cin>>y;
cout<<"x^y="<<pow(x,y)<<endl;
}

例:
x = 3
y = 2
x ^ y = 9

4.3の因数分解を計算します

#include<iostream>
using namespace std;
int fun(int x)
{
    
    
int N,s=1;
for(N=1;N<=x;N++)
{
    
    s=s*N;}
return s;
}

void main()
{
    
    int x,N;
cin>>N;
x=fun(N);
cout<<N<<"!="<<x<<endl; 
	}

入力:3
出力:3!= 6

経験:
1。同じスコープ内で、同じ名前の複数の関数を同様の関数で宣言できますが、同じ名前のこれらの関数の正式なパラメーター(パラメーターの数、タイプ、または順序を参照)は異なっている必要があります。リターンタイプの違いだけで関数をオーバーロードすることはできません
。2。関数呼び出し演算子()は、クラスのオブジェクトに対してオーバーロードできます。()をオーバーロードする場合、関数を呼び出す新しい方法を作成していません。逆に、これは、任意の数のパラメーターを渡すことができるオペレーター関数を作成しています。

おすすめ

転載: blog.csdn.net/haha_7/article/details/109012656