- # C言語/C++入門 > 関数と変数のスコープ
関数のオーバーロード
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
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
関数がオーバーロードされて、ちゃんと計算が行われています。
スポンサーリンク
>> 次の記事 : デフォルト引数・定義された引数を使用しない関数
<< 前の記事 : 参照型の戻り値で関数定義・参照戻し
- - 関連記事 -
- 再帰関数
- 関数の引数型/値呼び出し(値渡し)・参照呼出し(参照渡し)・配列
- インライン関数・inline
- デフォルト引数・定義された引数を使用しない関数
- 参照型の戻り値で関数定義・参照戻し
- 参照型の引数で関数定義
- const宣言の引数を持つ関数
- 引数のない関数(void)・voidの戻り値
- 関数の定義
- using文・using namespace
- 名前空間・namespace
- 変数の記憶クラス
- グローバル変数とローカル変数
スポンサーリンク