C++の関数は、特定のタスクを実行するためのコードブロックです。関数を使用することで、コードの再利用性が向上し、プログラムの構造がわかりやすくなります。以下に、C++の関数について詳しく解説します。
関数の基本構造
C++の関数は、関数の戻り値の型、関数名、引数リスト、そして関数本体で構成されます。
構文
戻り値の型 関数名(引数リスト) {
// 関数本体
}
例
#include <iostream>
using namespace std;
// 2つの整数を加算する関数
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(5, 3);
cout << "The sum is: " << result << endl;
return 0;
}
関数の定義と呼び出し
関数の定義
関数の定義は、関数がどのように動作するかを記述します。上記の例では、add
関数が2つの整数を加算してその結果を返します。
関数の呼び出し
関数の呼び出しは、関数名に続けて引数を渡すことで行います。上記の例では、add(5, 3)
が関数呼び出しです。
戻り値の型
関数の戻り値の型は、関数が返す値の型を指定します。戻り値がない場合は、void
型を使用します。
例
#include <iostream>
using namespace std;
// 戻り値がない関数
void printMessage() {
cout << "Hello, World!" << endl;
}
int main() {
printMessage();
return 0;
}
引数
関数には、任意の数の引数を渡すことができます。引数リストは、各引数の型と名前をカンマで区切って指定します。
例
#include <iostream>
using namespace std;
// 2つの整数を比較して大きい方を返す関数
int max(int a, int b) {
if (a > b) {
return a;
} else {
return b;
}
}
int main() {
int larger = max(10, 20);
cout << "The larger number is: " << larger << endl;
return 0;
}
デフォルト引数
C++では、関数の引数にデフォルト値を指定することができます。デフォルト引数は、関数プロトタイプで指定します。
例
#include <iostream>
using namespace std;
// デフォルト引数を持つ関数
void greet(string name = "Guest") {
cout << "Hello, " << name << "!" << endl;
}
int main() {
greet("Alice");
greet();
return 0;
}
オーバーロード
関数のオーバーロードとは、同じ名前の関数を異なる引数リストで定義することです。オーバーロードされた関数は、呼び出し時に渡された引数に基づいて適切な関数が選択されます。
例
#include <iostream>
using namespace std;
// 2つの整数を加算する関数
int add(int a, int b) {
return a + b;
}
// 2つの浮動小数点数を加算する関数
double add(double a, double b) {
return a + b;
}
int main() {
cout << "The sum of 5 and 3 is: " << add(5, 3) << endl;
cout << "The sum of 2.5 and 3.7 is: " << add(2.5, 3.7) << endl;
return 0;
}
再帰
再帰関数とは、自分自身を呼び出す関数のことです。再帰は、特定の問題を再帰的に解決するために使用されます。
例
#include <iostream>
using namespace std;
// 階乗を計算する再帰関数
int factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int num = 5;
cout << "Factorial of " << num << " is: " << factorial(num) << endl;
return 0;
}
まとめ
C++の関数は、特定のタスクを実行するためのコードブロックです。関数を使用することで、コードの再利用性が向上し、プログラムの構造がわかりやすくなります。C++の関数には、戻り値の型、引数、デフォルト引数、オーバーロード、再帰などの多くの機能があります。