C++では、**関数を定義する前に宣言しておく(プロトタイプ宣言)**ことで、関数をコードのどこからでも呼び出せるようにできます。これは、関数の本体がmain()
関数より後に記述される場合などに特に重要です。
本記事では、関数のプロトタイプを使って最大値を求める処理を実装し、関数宣言の役割と正しい使い方を解説いたします。
目次
サンプルコード:関数を先に宣言してから定義する例
#include <iostream>
using namespace std;
// 関数の宣言(プロトタイプ)
int getMaxValue(int a, int b);
int main()
{
int input1, input2, result;
cout << "1つ目の整数を入力してください。" << endl;
cin >> input1;
cout << "2つ目の整数を入力してください。" << endl;
cin >> input2;
result = getMaxValue(input1, input2);
cout << "最大値は " << result << " です。" << endl;
return 0;
}
// 関数の定義
int getMaxValue(int a, int b)
{
if (a > b)
return a;
else
return b;
}
コードの解説
関数の宣言(プロトタイプ)
int getMaxValue(int a, int b);
- 戻り値の型(
int
)、関数名(getMaxValue
)、引数の型を記述します。 - 関数の本体はまだ書かれていませんが、この宣言によってmain関数内で関数を使うことが可能になります。
main関数の処理
- 入力値を2つ受け取り、
getMaxValue()
を呼び出して最大値を求めています。
関数の定義
- 実際の処理内容は、
main()
の後ろで定義されています。 - 宣言があるため、先に定義していなくても問題なく呼び出し可能です。
なぜ関数宣言が必要なのか?
C++はトップダウン型の言語であり、関数を使用する前にその存在を知っておく必要があります。関数がmain()
の後ろに書かれている場合、先に宣言しておかなければコンパイルエラーになります。
関数宣言の構文
戻り値の型 関数名(引数の型, 引数の型, ...);
例:
double calculateArea(double width, double height);
void showMessage();
よくあるミスと注意点
ミス内容 | 解説 |
---|---|
セミコロンの忘れ | 関数宣言には必ず末尾に ; が必要です |
引数の名前を省略 | 名前を省略してもよいですが、型は必須です |
戻り値の型の不一致 | 宣言と定義の型が異なるとコンパイルエラーになります |
まとめ
- 関数を使う前に**プロトタイプ宣言(関数の宣言)**を書くことで、コードの順序に関係なく関数を呼び出せるようになります。
- 複数ファイルにまたがるプログラムや、関数を整理して後ろに書きたいときに非常に役立ちます。
- 関数宣言は、関数のインターフェースを明示するための重要な構文です。