C++関数ベース


関数は名前付きのコードブロックであり、関数を呼び出すことで対応するコードを実行できます.
1つの関数の定義には、戻りタイプ、関数名、パラメータリスト、および関数体の4つの部分が含まれます.ここで、パラメータはカンマで区切られ、カッコ内に配置されます.関数体に格納されるのは、関数が実行する操作です.
たとえば、2つの整数の最大値を簡単に求めます.
int max(int x,int y) 
{
     int z;
     
     z = (x > y) ? x : y;
     
     return z;
} 

この関数の名前はmaxです.2つの整数パラメータxとyがある.戻りタイプは整数で、関数が整数値を返すことを示します.カッコの中のコードは関数体であり、2つの整数の最大数を求める操作を実現します.
関数は、次の点に注意する必要があります.
1.呼び出し関数
上記のmax関数を呼び出すには、2つの整数値を指定する必要があります.呼び出された結果も整数です.
int main()
{
    int m = max(3, 6);
    cout << "The max is " << m << endl;
    return 0;
}
関数を呼び出すプロセスは、2つの作業を完了しました.
(1)実パラメータで関数に対応するパラメータを初期化する.
(2)制御権を被変調関数(上のmax関数)に移行すると、主変調関数(上のmain関数)の実行が中断され、被変調関数が実行を開始し、1つのreturn文に遭遇したときに被変調関数が実行過程を終了し、return文の値(もしあれば)を返しながら制御権を被変調関数から主変調関数に移行する.
上のmain関数のmax関数の呼び出しは、次の形式に等価です.
int x = 3;
int y = 6;
int z;
z = (x > y)? x : y;
int m = z;

2.形参と実参
実パラメータはパラメータの初期値であり、実パラメータのタイプは対応するパラメータタイプと一致しなければならず、関数の呼び出しは実パラメータの数がパラメータの数と一致することを規定する.上記のmax関数はintタイプのパラメータが2つしかないので、呼び出すたびにintに変換できる実パラメータを2つ提供する必要があります.次の関数呼び出しを見てください.
max("hello");//エラー:実パラメータタイプが正しくありません
max(1);//エラー:パラメータ数が不足しています
max(1, 2, 3);//エラー:実パラメータの数が多すぎます
max(3.14, 6);//正しい:double型パラメータはint型に変換でき、max(3,6)の実行に等価である.
関数を記述する場合、関数のパラメータリストは空にすることができますが、省略することはできません.すなわち、カッコを書く必要があります.
3.関数戻りタイプ
ほとんどのタイプは関数の戻りタイプとして使用できます.特殊な戻りタイプはvoidで、関数が値を返さないことを示します.関数の戻りタイプは、配列タイプまたは関数タイプではありませんが、配列または関数を指すポインタタイプであってもよいです.