C++関数完全ガイド:基礎から応用まで(ユーザー定義・標準ライブラリ)
C++ 関数をマスターする
このチュートリアルでは、C++関数の基礎——ユーザー定義関数、プロトタイプ、パラメータ、戻り値型、標準ライブラリ関数——を明確な実例とともに解説します。
関数は特定のタスクを実行する自己完結したコードブロックです。複雑な問題を小さく再利用可能な関数に分割することで、可読性、保守性、テスト容易性が向上します。
C++では2つの関数カテゴリに出会います:
- 標準ライブラリ関数 – 言語で事前定義(例:
sqrt(),abs()) - ユーザー定義関数 – 独自ロジックをカプセル化するために自分で書く関数
ここではユーザー定義関数に焦点を当て、構文、呼び出し、ベストプラクティスを扱います。
C++ ユーザー定義関数
C++では、戻り値型、名前、オプションのパラメータという明確なシグネチャで関数を定義できます。
関数宣言の構文
returnType functionName(parameter1, parameter2, ...) {
// 関数本体
}
例: void greet() は挨拶を出力。空の括弧はパラメータなしを意味します。
// 関数宣言
void greet() {
cout << "Hello World";
}
重要ポイント:
- 関数名:
greet() - 戻り値型:
void(値を返さない) - パラメータ: なし(空の括弧)
- 本体:
{}内のコード
関数の呼び出し
greet() を使うには、必要な場所で呼び出すだけです。
int main() {
greet();
}

実例 1: テキスト表示
#include <iostream>
using namespace std;
void greet() {
cout << "Hello there!";
}
int main() {
greet();
return 0;
}
出力
Hello there!
関数パラメータ
パラメータは関数に渡される値のプレースホルダーです。
void printNum(int num) {
cout << num;
}
printNum を呼び出すとき、引数を渡します:
int main() {
int n = 7;
printNum(n);
return 0;
}
実例 2: 複数パラメータを持つ関数
#include <iostream>
using namespace std;
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;
displayNum(num1, num2);
return 0;
}
出力
The int number is 5 The double number is 5.5
引数の型が宣言されたパラメータと一致することを確認してください。

戻り値文
関数は値を返せます。戻り値型を指定し、return で結果を提供します。
int add(int a, int b) {
return a + b;
}
add を呼び出し、結果を格納:
int sum = add(100, 78);
cout << "100 + 78 = " << sum << endl;
実例 3: 2数の加算
#include <iostream>
using namespace std;
int add(int a, int b) {
return a + b;
}
int main() {
int sum = add(100, 78);
cout << "100 + 78 = " << sum << endl;
return 0;
}
出力
100 + 78 = 178
関数プロトタイプ
関数が最初の使用より後に定義される場合、プロトタイプでコンパイラにシグネチャを知らせます。
// プロトタイプ
void add(int, int);
int main() {
add(5, 3);
return 0;
}
// 定義
void add(int a, int b) {
cout << (a + b);
}
プロトタイプ構文:
returnType functionName(paramType1, paramType2, ...);
実例 4: プロトタイプの使用
#include <iostream>
using namespace std;
int add(int, int);
int main() {
int sum = add(100, 78);
cout << "100 + 78 = " << sum << endl;
return 0;
}
int add(int a, int b) {
return a + b;
}
出力
100 + 78 = 178
ユーザー定義関数のメリット
- カプセル化: 関連コードを単一の再利用可能ブロックにグループ化
- 可読性: 複雑なロジックを説明的な関数に分割
- 保守性: 1箇所の修正で全呼び出し箇所に反映
- テスト容易性: 機能を分離してユニットテスト可能
標準ライブラリ関数
C++標準ライブラリは、一般的なタスクを簡素化する豊富な出来合いの関数を提供します。例: sqrt(), abs(), isdigit() など。
ライブラリ関数を使うには、宣言されているヘッダーをインクルードします。数学演算なら #include <cmath> で sqrt(), pow() などが利用可能になります。
実例 5: 平方根の計算
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double number = 25.0;
double squareRoot = sqrt(number);
cout << "Square root of " << number << " = " << squareRoot;
return 0;
}
出力
Square root of 25 = 5
sqrt() 関数の宣言は cmath ヘッダーにあるため、#include <cmath> ディレクティブが必要です。
C++ライブラリ関数についてさらに深く知りたい場合は、C++ 標準ライブラリ リファレンス を参照してください。
C言語
- Stratasys FDM造形を最適化するInsight必須機能10選
- C++演算子完全ガイド:算術・代入・関係・論理・ビット演算子と実例
- C++コメント完全ガイド:読みやすく保守しやすいコードのためのベストプラクティス
- C++配列を関数に渡す完全ガイド:1次元・多次元配列の実例付き
- C++フレンド関数とフレンドクラス:アクセス制御のマスター
- C++演算子オーバーロード:コード例付き実践ガイド
- C言語の関数マスター:構造、宣言、ベストプラクティス
- C++オーバーロード完全マスター:関数と演算子のオーバーロード
- C++ポリモーフィズム完全理解:仮想関数と純粋仮想関数
- Verilog関数のマスター:効率的なRTL設計のために
- Pythonラムダ関数をマスターする:実例とベストプラクティス