C++での関数のオーバーロードの実装方法は何ですか?

C++において、関数のオーバーロードとは、同じスコープ内で複数の同じ名前の関数を定義することであり、しかしそれらのパラメータリストが異なる(パラメータのタイプ、個数、または順序が異なる)ものを指す。コンパイラは関数のパラメータリストに基づいて異なる関数を区別し、これにより関数のオーバーロードが実現される。

関数のオーバーロードを実現する方法は次のとおりです。

  1. 複数の同じ名前の関数を定義しますが、その引数リストが異なります。
  2. 関数を呼び出すと、コンパイラは受け取った引数に基づいて、適切な関数に自動的にマッチングします。
  3. 引数がいずれのオーバーロード関数にもマッチしない場合、コンパイラはエラーを報告します。
  4. 関数の戻り値の型は同じであっても異なっていても構わない。ただし、引数リストが異なっていればオーバーロードされた関数を実装できる。

サンプルコード:

#include <iostream>

void print(int num) {
    std::cout << "Integer number: " << num << std::endl;
}

void print(double num) {
    std::cout << "Double number: " << num << std::endl;
}

int main() {
    print(10);
    print(3.14);
    
    return 0;
}

上記の例では、整数型パラメータを受け取る関数と浮動小数点数パラメータを受け取る関数の2つのprint関数が定義されています。main関数内でそれぞれの関数を呼び出すと、コンパイラは渡されたパラメータの型に基づいて対応する関数を呼び出します。

bannerAds