C++での関数のオーバーロードの実装方法は何ですか?
C++において、関数のオーバーロードとは、同じスコープ内で複数の同じ名前の関数を定義することであり、しかしそれらのパラメータリストが異なる(パラメータのタイプ、個数、または順序が異なる)ものを指す。コンパイラは関数のパラメータリストに基づいて異なる関数を区別し、これにより関数のオーバーロードが実現される。
関数のオーバーロードを実現する方法は次のとおりです。
- 複数の同じ名前の関数を定義しますが、その引数リストが異なります。
- 関数を呼び出すと、コンパイラは受け取った引数に基づいて、適切な関数に自動的にマッチングします。
- 引数がいずれのオーバーロード関数にもマッチしない場合、コンパイラはエラーを報告します。
- 関数の戻り値の型は同じであっても異なっていても構わない。ただし、引数リストが異なっていればオーバーロードされた関数を実装できる。
サンプルコード:
#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関数内でそれぞれの関数を呼び出すと、コンパイラは渡されたパラメータの型に基づいて対応する関数を呼び出します。