logo

C++ での関数のオーバーロード

関数のオーバーロードは、2 つ以上の関数が同じ名前で異なるパラメーターを持つことができるオブジェクト指向プログラミングの機能です。関数名がさまざまなジョブでオーバーロードされる場合、それは関数のオーバーロードと呼ばれます。関数のオーバーロードでは、関数名は同じで、引数は異なる必要があります。関数のオーバーロードは、C++ のポリモーフィズム機能の例として考えることができます。

複数の関数が同じ名前を持ち、関数のパラメーターが異なる必要がある場合、関数のオーバーロードと呼ばれます。
実行する操作が 1 つだけで、関数の名前が同じである場合、プログラムの可読性が向上します。
指定された数値の加算を実行する必要があるが、引数はいくつでも指定できるとします。2 つのパラメーターについては a(int,int)、3 つのパラメーターについては b(int,int,int) などの関数を作成すると、関数の名前が異なるため、関数の動作を理解するのが難しいかもしれません。

パラメーターは、関数のオーバーロードに関する次の条件のいずれか 1 つ以上に従う必要があります。



Javaでマップを反復する
  • パラメータには別の型を指定する必要があります

add(int a, int b)
add(double a, double b)

以下は上記の議論の実装です。

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>double> a,>double> b)> {> >cout << endl <<>'sum = '> << (a + b);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5.3, 6.2);> >return> 0;> }>

>

>

出力

sum = 12 sum = 11.5>
  • パラメータには別の番号を指定する必要があります

add(int a, int b)
add(int a, int b, int c)

以下は上記の議論の実装です。

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout << endl <<>'sum = '> << (a + b + c);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5, 6, 4);> >return> 0;> }>

>

>

出力

sum = 12 sum = 15>
  • パラメータには異なるパラメータの順序が必要です。

add(int a, double b)
add(double a, int b)

以下は上記の議論の実装です。

C++




Javaでの文字から文字列への変換

#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum = '><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum = '<<(a+b); } // Driver code int main() { add(10,2.5); add(5.5,6); return 0; }>

>

>

出力

sum = 12.5 sum = 11.5>

以下は、関数のオーバーロードを示す簡単な C++ の例です。

CPP




#include> using> namespace> std;> void> print(>int> i) {> >cout <<>' Here is int '> << i << endl;> }> void> print(>double> f) {> >cout <<>' Here is float '> << f << endl;> }> void> print(>char> const> *c) {> >cout <<>' Here is char* '> << c << endl;> }> int> main() {> >print(10);> >print(10.10);> >print(>'ten'>);> >return> 0;> }>

>

>

出力

Androidで誰かがあなたをブロックしたかどうかを確認する方法
 Here is int 10 Here is float 10.1 Here is char* ten>

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout<'sum ='<<(a+b+c); } main() { add(10,2); add(5,6,4); return 0; }>

>

>

C++




#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum ='<<(a+b); } main() { add(10,2.5); add(5.5,6); return 0; }>

>

>

関数のオーバーロードはどのように機能しますか?

  • 完全に一致 :- (関数名とパラメータ)
  • もし ある 完全に一致しないものが見つかりました:

->Char、Unsigned char、short は int に変換されます。

->float は double に昇格します

  • 一致するものが見つからない場合 :

->C++ は標準の変換を通じて一致を見つけようとします。

  • それ以外の場合エラー
  1. 関数のオーバーロードと戻り値の型
  2. C++ でオーバーロードできない関数
  3. 関数のオーバーロードと const キーワード
  4. C++ における関数のオーバーロードと関数のオーバーライド

C++ での関数のオーバーロードに関する最近の記事