関数のオーバーロード

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

C++の場合、関数のオーバーロードが使えます。
オーバーライドではなく、オーバーロードです。
関数のオーバーロードとは、複数の関数を同じ名前で定義できます。
関数のオーバーロードでは、関数の名前は同じとなりますが、引数の型、引数の数、引数の並び順、関数の戻り値、は異なってもOKです。

スポンサーリンク

以下に、引数2つの足し算、引数3つの足し算、の関数でオーバーロードの例を見てみます。

#include <iostream>
 
int main() {
    int calc(int a, int b);
    float calc(float c, float d, float e);
    std::cout << calc(2, 5) << "\n";
    std::cout << calc(3.2, 1.4, 6.1) << "\n";
    return (0);
}
 
int calc(int a, int b) {
    return (a + b);
}
float calc(float c, float d, float e) {
    return (c + d + e);
}

どちらも足し算という同じ機能を提供し、calcという同じ名前を持っています。
異なるのは、引数の型、引数の数、と関数の戻り値です。
引数が全く同じの場合、関数の区別が付かなくなるので・・・

int calc();
float cals();

のような書き方は、許可されません。(引数が両方とも”なし”なので区別が付かない)
では、上記コードの実行結果。

7
10.7

関数がオーバーロードされて、ちゃんと計算が行われています。

スポンサーリンク
 
スポンサーリンク