C++ 関数の多重定義(オーバーロード)

通常、同じ名前の関数を作る事はできませんが、
引数の数引数の型が違っていれば可能となります。

戻り値では区別できません。

int tasizan(int a, int b);
double tasizan(double a, double b);

void main(void) {
      int ians = 0;
      double dans = 0;

      ians = tasizan(20, 5);      // int型の方の関数呼び出し

      dans = tasizan(2.5, 7.5);      // double型の方の関数呼び出し

}

int tasizan(int a, int b) {
      return a + b;
}

double tasizan(double a, double b) {
      return a + b;
}

このプログラムでは、
同じ名前の関数tasizanが存在しますが、
引数の型が異なるため、
コンパイルエラーとはならず、正常に動作します。

引数に整数を使うと引数にint型を使う関数が呼ばれ、
引数に少数を使うと引数にdouble型を使う関数が呼ばれます。

■参考ページ
C++ メンバ関数の多重定義(オーバーロード)