Menu
Coddy logo textTech

関数のオーバーロード

CoddyのC++ジャーニー「基礎」セクションの一部 — レッスン 54/74。

関数オーバーロードは、2つ以上の関数が同じ名前を持ちながら異なるパラメータを持つことができるC++の機能です。オーバーロードされた関数を呼び出す際、C++コンパイラは、呼び出しで使用した引数の型と定義で指定されたパラメータの型を比較することにより、使用する最も適切な定義を決定します。一致する関数が見つからない場合、コンパイラはエラーを生成します。

関数オーバーロードの例を次に示します:

int add(int a, int b) {
	return a + b;
}
double add(double a, double b) {
	return a + b;
}
int main() {
	int sum1 = add(5, 3); // addの最初のバージョンを呼び出します
	double sum2 = add(2.5, 3.7); // addの2番目のバージョンを呼び出します
    return 0;
}

この例では、addという名前の2つの関数があります。一方は2つのint型のパラメータを受け取り、もう一方は2つのdouble型のパラメータを受け取ります。addに渡す引数の型に応じて、適切なバージョンの関数が呼び出されます。

戻り値の型だけでは関数のオーバーロードには不十分であることに注意してください。関数はパラメータリストが異なっている必要があります。

チートシート

関数オーバーロードにより、同じ名前で異なるパラメータを持つ複数の関数を定義できます。コンパイラは、引数の型に基づいて適切な関数を選択します。

int add(int a, int b) {
	return a + b;
}
double add(double a, double b) {
	return a + b;
}
int main() {
	int sum1 = add(5, 3); // int版を呼び出す
	double sum2 = add(2.5, 3.7); // double版を呼び出す
    return 0;
}

関数はパラメータリストが異なっている必要があります。戻り値の型だけではオーバーロードには不十分です。

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン