C++では、関数の引数に初期値(デフォルト値)を指定することができます。これにより、引数を省略した関数呼び出しが可能となり、コードの可読性や柔軟性が向上します。
この記事では、デフォルト引数の基本的な使い方とその効果について、具体的なサンプルコードとともに解説いたします。
目次
サンプルコード:デフォルト引数を使った関数の定義と呼び出し
#include <iostream>
using namespace std;
// purchaseCar関数の宣言(デフォルト引数を指定)
void purchaseCar(int price = 50);
int main()
{
    cout << "1回目は金額を指定して購入します。" << endl;
    purchaseCar(120);
    cout << "2回目は金額を指定せずに購入します。" << endl;
    purchaseCar();
    return 0;
}
// purchaseCar関数の定義
void purchaseCar(int price)
{
    cout << price << "万円の自動車を購入しました。" << endl;
}
コードの解説
デフォルト引数の宣言
void purchaseCar(int price = 50);
このように、関数の宣言部で引数に初期値を設定します。ここでは price = 50 としているため、関数を引数なしで呼び出した場合、自動的に「50」という値が使用されます。
注意:デフォルト引数は関数の定義ではなく、宣言のみに記述します。
関数の呼び出し例
purchaseCar(120);  // 120万円で購入
purchaseCar();     // デフォルト値の50万円で購入
引数あり・なしの両方で呼び出せるため、状況に応じた柔軟な使い方が可能となります。
デフォルト引数のルールと注意点
| ルール・注意点 | 内容 | 
|---|---|
| 宣言部にのみ記述 | 関数の定義側で指定すると二重定義となる恐れがあります | 
| 複数の引数 | 複数ある場合、右から順にデフォルトを設定する必要があります | 
| 関数のオーバーロード | デフォルト引数とオーバーロードを組み合わせると曖昧になる可能性があります | 
実用例:ユーザーに応じた柔軟な処理
- ユーザーが金額を指定した場合はその値を反映
 - 指定がなければ、標準的な金額で購入処理を実行
 
このような柔軟な設計は、ゲーム開発・業務アプリなど多くの場面で役立ちます。
まとめ
- デフォルト引数を使うことで、関数の使い勝手が向上します。
 - コードが短くなり、読みやすく保守しやすい構造になります。
 - 関数を複数の使い方で柔軟に呼び出したい場合に有効です。
 
