同じスコープ内で名前 f を持つ関数を複数個宣言すると、
関数名 f を多重定義することになります。
f の宣言は、型または引き数リスト中の引き数の数、またはその両方で、
互いに異なるものでなければなりません。
f という名前の多重定義された関数を呼び出すとき、関数呼び出しの引き数リストを、
名前 f を持つ多重定義された候補関数のそれぞれのパラメーター・リストと比較することによって、
正しい関数が選択されます。
候補関数 とは、
多重定義された関数名の呼び出しのコンテキストに基づいて呼び出すことのできる関数のことです。
関数 print (int を表示する) について考えてみましょう。 次の例に示すように、関数 print を多重定義して、 他の型 (例えば、double および char*) を表示することができます。 異なるデータ型に対して、それぞれ同様のオペレーションを実行する、 同じ名前の関数を 3 つ持つことができます。
#include <iostream> 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* c) { cout << " Here is char* " << c << endl; } int main() { print(10); print(10.10); print("ten"); }
次に、上記の例の出力を示します。
Here is int 10 Here is float 10.1 Here is char* ten
関連参照