関数のオーバーロードとは?C++での仕組みと具体例

C++には「関数のオーバーロード(Overload)」という便利な機能があります。これは、同じ関数名であっても、引数の型や個数が異なれば、別の処理を定義できる機能です。

初心者の方でも理解しやすいように、この記事では関数のオーバーロードの基本と、整数型・浮動小数点型の最大値を求める関数の例を用いてご紹介いたします。


目次

サンプルコード(C++)

#include <iostream>
using namespace std;

// getMax関数の宣言(整数型用)
int getMax(int value1, int value2);

// getMax関数の宣言(小数型用)
double getMax(double value1, double value2);

int main()
{
    int numA, numB;
    double numX, numY;

    cout << "整数を2つ入力してください。" << endl;
    cin >> numA >> numB;

    cout << "小数を2つ入力してください。" << endl;
    cin >> numX >> numY;

    int resultInt = getMax(numA, numB);
    double resultDouble = getMax(numX, numY);

    cout << "入力された整数の最大値は " << resultInt << " です。" << endl;
    cout << "入力された小数の最大値は " << resultDouble << " です。" << endl;

    return 0;
}

// getMax関数(整数用)の定義
int getMax(int value1, int value2)
{
    if (value1 > value2)
        return value1;
    else
        return value2;
}

// getMax関数(小数用)の定義
double getMax(double value1, double value2)
{
    if (value1 > value2)
        return value1;
    else
        return value2;
}

解説

1. オーバーロードとは

同じ関数名を使用しながらも、引数の型や個数が異なる関数を複数定義することを「オーバーロード」と呼びます。上記の例では、getMaxという同一の名前を持つ関数が、int型とdouble型でそれぞれ定義されています。

2. 使い分けの仕組み

C++のコンパイラは、関数を呼び出すときに引数の型を自動で判別し、適切な定義を選んでくれます。これにより、getMax(10, 20)は整数用、getMax(1.5, 3.7)は小数用として処理されます。


実行結果の例

整数を2つ入力してください。
15 30
小数を2つ入力してください。
12.5 8.3
入力された整数の最大値は 30 です。
入力された小数の最大値は 12.5 です。

まとめ

関数のオーバーロードは、処理を統一的な関数名で表現できるため、コードの見通しを良くし、再利用性も高められます。C++では日常的に使われる基本機能ですので、初心者の方もぜひこの機会に習得しておきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次