C++ 関数
C++ 関数
このチュートリアルでは、例を使用して C++ 関数と関数式について学習します。
関数は、特定のタスクを実行するコードのブロックです。
円を作成して色を付けるプログラムを作成する必要があるとします。この問題を解決するために 2 つの関数を作成できます:
- 円を描く関数
- 円に色を付ける関数
複雑な問題を小さなチャンクに分割することで、プログラムが理解しやすく再利用しやすくなります。
関数には次の 2 種類があります。
<オール>このチュートリアルでは、主にユーザー定義関数に焦点を当てます。
C++ ユーザー定義関数
C++ では、プログラマは独自の関数を定義できます。
ユーザー定義関数は、特定のタスクを実行するコードをグループ化し、そのコードのグループに名前 (識別子) を与えます。
関数がプログラムの任意の部分から呼び出されると、関数の本体で定義されたコードがすべて実行されます。
C++ 関数宣言
関数を宣言する構文は次のとおりです:
returnType functionName (parameter1, parameter2,...) {
// function body
}
関数宣言の例を次に示します。
// function declaration
void greet() {
cout << "Hello World";
}
ここで、
- 関数の名前は
greet()
です - 関数の戻り値の型は
void
です - 空の括弧は、パラメータがないことを意味します
- 関数本体は
{}
内に記述されています
注: returnType
について学びます と parameters
関数の呼び出し
上記のプログラムでは、greet()
という名前の関数を宣言しています。 . greet()
を使用するには 関数を呼び出す必要があります。
上記の greet()
を呼び出す方法は次のとおりです。 関数。
int main() {
// calling a function
greet();
}
<図> 例 1:テキストを表示する
#include <iostream>
using namespace std;
// declaring a function
void greet() {
cout << "Hello there!";
}
int main() {
// calling the function
greet();
return 0;
}
出力
Hello there!
関数パラメータ
前述のように、関数はパラメーター (引数) を使用して宣言できます。パラメーターは、関数を宣言するときに渡される値です。
たとえば、以下の関数を考えてみましょう:
void printNum(int num) {
cout << num;
}
ここでは、int
変数 num は関数パラメータです。
関数を呼び出すときに、関数パラメーターに値を渡します。
int main() {
int n = 7;
// calling the function
// n is passed to the function as argument
printNum(n);
return 0;
}
例 2:パラメータを持つ関数
// program to print a text
#include <iostream>
using namespace std;
// display a number
void displayNum(int n1, float n2) {
cout << "The int number is " << n1;
cout << "The double number is " << n2;
}
int main() {
int num1 = 5;
double num2 = 5.5;
// calling the function
displayNum(num1, num2);
return 0;
}
出力
The int number is 5 The double number is 5.5
上記のプログラムでは、1 つの int
を持つ関数を使用しました。 パラメータと 1 つの double
パラメータ。
次に num1 を渡します そして num2 引数として。これらの値は関数パラメータ n1 によって保存されます と n2
<図>注: 関数の呼び出し中に渡される引数の型は、関数宣言で定義された対応するパラメーターと一致する必要があります。
返品明細書
上記のプログラムでは、関数宣言で void を使用しました。たとえば、
void displayNumber() {
// code
}
これは、関数が値を返さないことを意味します。
関数から値を返すこともできます。このために、returnType
を指定する必要があります。 関数宣言中の関数の。
次に、return
ステートメントを使用して、関数から値を返すことができます。
たとえば、
int add (int a, int b) {
return (a + b);
}
ここでは、データ型 int
を持っています void
の代わりに .これは、関数が int
を返すことを意味します
コード return (a + b);
2 つのパラメーターの合計を関数値として返します。
return
statement は、関数が終了したことを示します。 return
の後の任意のコード 関数内は実行されません。
例 3:2 つの数字を足す
// program to add two numbers using a function
#include <iostream>
using namespace std;
// declaring a function
int add(int a, int b) {
return (a + b);
}
int main() {
int sum;
// calling the function and storing
// the returned value in sum
sum = add(100, 78);
cout << "100 + 78 = " << sum << endl;
return 0;
}
出力
100 + 78 = 178
上記のプログラムでは、add()
関数は、2 つの数値の合計を見つけるために使用されます。
2 つの int
を渡します リテラル 100
と 78
関数の呼び出し中。
関数の戻り値を変数 sum に格納します
<図>
合計 int
の変数です タイプ。これは、add()
の戻り値が int
のものです タイプしてください。
関数プロトタイプ
C++ では、関数宣言のコードは関数呼び出しの前にある必要があります。ただし、関数呼び出しの後に関数を定義する場合は、関数プロトタイプを使用する必要があります。たとえば、
// function prototype
void add(int, int);
int main() {
// calling the function before declaration.
add(5, 3);
return 0;
}
// function definition
void add(int a, int b) {
cout << (a + b);
}
上記のコードでは、関数のプロトタイプは次のとおりです:
void add(int, int);
これにより、関数名とそのパラメーターに関する情報がコンパイラーに提供されます。そのため、関数が定義される前にコードを使用して関数を呼び出すことができます。
関数プロトタイプの構文は次のとおりです:
returnType functionName(dataType1, dataType2, ...);
例 4:C++ 関数のプロトタイプ
// using function definition after main() function
// function prototype is declared before main()
#include <iostream>
using namespace std;
// function prototype
int add(int, int);
int main() {
int sum;
// calling the function and storing
// the returned value in sum
sum = add(100, 78);
cout << "100 + 78 = " << sum << endl;
return 0;
}
// function definition
int add(int a, int b) {
return (a + b);
}
出力
100 + 78 = 178
上記のプログラムは、例 3 とほとんど同じです。 .唯一の違いは、ここでは関数が後に定義されていることです 関数呼び出し。
そのため、この例では関数プロトタイプを使用しています。
ユーザー定義関数を使用する利点
- 関数はコードを再利用可能にします。一度宣言すれば、複数回使用できます。
- 各小さなタスクが関数に分割されるため、関数を使用するとプログラムが簡単になります。
- 関数は可読性を高めます。
C++ ライブラリ関数
ライブラリ関数は、C++ プログラミングの組み込み関数です。
プログラマーは、関数を直接呼び出してライブラリ関数を使用できます。関数自体を記述する必要はありません。
C++ のいくつかの一般的なライブラリ関数は sqrt()
です 、 abs()
、 isdigit()
など
ライブラリ関数を使用するには、通常、これらのライブラリ関数が定義されているヘッダー ファイルを含める必要があります。
たとえば、sqrt()
などの数学関数を使用するには と abs()
、ヘッダーファイル cmath
を含める必要があります .
例 5:数値の平方根を求める C++ プログラム
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double number, squareRoot;
number = 25.0;
// sqrt() is a library function to calculate the square root
squareRoot = sqrt(number);
cout << "Square root of " << number << " = " << squareRoot;
return 0;
}
出力
Square root of 25 = 5
このプログラムでは、sqrt()
ライブラリ関数は、数値の平方根を計算するために使用されます。
sqrt()
の関数宣言 cmath
で定義されています ヘッダファイル。そのため、コード #include <cmath>
を使用する必要があります sqrt()
を使用するには 関数。
詳細については、C++ 標準ライブラリ関数にアクセスしてください。
C言語