Latest web development tutorials

C ++関数

一緒にミッションステートメントを実行するための関数のセットです。 すべてのC ++プログラムは、それがメイン関数main()、すべての単純なプログラムは、他の追加機能を定義することができますされ、少なくとも1つの機能を持っています。

あなたは、異なる機能にコードを置くことができます。 別々の機能にコードを分割する方法を決定するためにあなた次第ですが、論理的に通常分割実施するための特定のタスクに基づいて、各機能を実行します。

関数宣言は、コンパイラの関数名、戻り値の型とパラメータを示します。 関数定義は、関数の実際のボディを提供します。

C ++標準ライブラリは、プログラムの組み込み関数の多くは、呼び出すことができます提供します。 例えば、関数STRCAT()は別の場所にメモリをコピーするために、2つの文字列を接続するための関数のmemcpy()が使用されます。

そのようなので、上の方法、手順やサブルーチンなどとして、多くの関数が呼び出されています。

定義関数

次のようにC ++関数定義の一般的な形式は次のとおりです。

return_type function_name( parameter list )
{
   body of the function
}

C ++では、関数は、関数のヘッダと関数本体のコンポーネントで構成されます。 以下に記載されているすべての機能の一部です:

  • 戻り値の型:関数が値を返すことができます。return_typeは、関数によって返される値のデータ型です。 いくつかの関数は、この場合には、戻り値なしreturn_typeキーワードボイドを所望の動作を行います
  • 関数名:これは、関数の実際の名前です。関数名とパラメータリストは、一緒に関数のシグネチャを構成しています。
  • パラメータ:パラメータはプレースホルダのようなものです。関数が呼び出されると、あなたはパラメータに値を渡し、この値は実パラメータと呼ばれています。 パラメータリストは、関数のパラメータ、注文数量の種類があります。 パラメータは、それは、関数はパラメータを含めることはできませんと言うことです、任意です。
  • 主な機能:関数本体は、ミッションステートメントを定義した関数のセットが含まれています。

以下のソースコードのmax()関数です。 この関数は、カウント2つの数の大きい方を返します。これは、2つのパラメータ値num1とnum2のをとります。

// 函数返回两个数中较大的那个数
 
int max(int num1, int num2) 
{
   // 局部变量声明
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}

関数の宣言

関数宣言は、コンパイラの関数名を伝え、どのように関数を呼び出すこと。 関数の実体を個別に定義することができます。

関数の宣言は次のセクションがあります。

return_type function_name( parameter list );

関数max()、次の関数の宣言であるために上記で定義されました:

int max(int num1, int num2);

関数宣言では、パラメータの名前は、唯一のタイプのパラメータが必要とされる重要ではありませんので、次は有効な文です:

int max(int, int);

あなたは、ソースファイル内の関数を定義し、別のファイル内の関数を呼び出すと、関数の宣言が必要です。 このケースでは、ファイルの関数宣言関数の先頭を呼び出す必要があります。

関数の呼び出し

あなたは関数が何を定義するC ++関数を作成し、それが定義されている関数を呼び出してタスクを完了するとき。

プログラムは関数を呼び出すと、プログラム制御は、呼び出された関数に転送されます。 関数は、関数のreturn文が実行されるときに呼び出され定義されたタスクを実行し、またはエンドブラケット機能に到達すると、プログラムがメインプログラムに制御を戻します。

あなたが必要なパラメータを渡して、関数を呼び出すときに、関数が値を返す場合、あなたは戻り値を格納することができます。 例えば:

#include <iostream>
using namespace std;
 
// 函数声明
int max(int num1, int num2);
 
int main ()
{
   // 局部变量声明
   int a = 100;
   int b = 200;
   int ret;
 
   // 调用函数来获取最大值
   ret = max(a, b);
 
   cout << "Max value is : " << ret << endl;
 
   return 0;
}
 
// 函数返回两个数中较大的那个数
int max(int num1, int num2) 
{
   // 局部变量声明
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}

最大()関数とmain()関数は、ソースコードをコンパイルし、作品を入れています。 あなたが最終的な実行可能ファイルを実行すると、以下の結果が生成されます。

Max value is : 200

関数の引数

あなたが関数のパラメータを使用する場合は、パラメータ値を受け入れるように変数を宣言する必要があります。 これらの変数は、関数の仮引数として知られています。

関数を入力するときに、関数内のローカル変数が作成されたパラメータの他の形態と同様に、機能を終了するが破壊されます。

関数が呼び出されると、関数にパラメータを渡すには、2つの方法があります。

调用类型描述
传值调用 该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数对实际参数没有影响。
指针调用 该方法把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
引用调用 该方法把参数的引用复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

デフォルトでは、C ++には、パラメータを渡すことによる呼び出しを使用して。 一般的に、これは、関数内のコードは、関数を呼び出すために使用されるパラメータを変更することはできませんことを意味します。 同じ方法を使用するときに前述の例としては、最大()関数を呼び出します。

パラメータのデフォルト値

あなたは関数を定義するときは、背後にあるパラメータ・リスト中の各パラメータのデフォルト値を指定することができます。 関数が呼び出されると、実際のパラメータの値が空白になっている場合は、デフォルト値を使用します。

これは、パラメータとして関数定義を割り当てる代入演算子を使用して行われます。 関数が呼び出されると、パラメータの値が渡されない場合は、その値が指定されている場合、デフォルト値は、渡された値を使用して、無視されるデフォルト値を使用します。 次の例を考えてみます。

#include <iostream>
using namespace std;
 
int sum(int a, int b=20)
{
  int result;

  result = a + b;
  
  return (result);
}

int main ()
{
   // 局部变量声明
   int a = 100;
   int b = 200;
   int result;
 
   // 调用函数来添加值
   result = sum(a, b);
   cout << "Total value is :" << result << endl;

   // 再次调用函数
   result = sum(a);
   cout << "Total value is :" << result << endl;
 
   return 0;
}

上記のコードはコンパイルされ、実行されると、次の結果を生成します。

Total value is :300
Total value is :120