オーバーロード
オーバーロード:同じ関数名の関数を引数の型、引数の数+戻り値の型の違いで、別の処理で呼び出す機能
int maxVal(int); //引数をそのまま返す関数
int maxVal(int, int);//2つの引数のうち大きいほうを返す
int maxVal(int, int, int); //3つの引数のうち大きいものを返す
int maxVal(int, int, int, int); //4つの引数のうち大きいものを返す
など
テンプレート
テンプレート関数:型をパラメータとして、
char maxValue(char a, char b) int maxValue(int a, int b) float maxValue(float a, float b) double maxValue(double a, double b) (型) maxValue((型) a, (型) b) { return((a >= b)? a : b); } (int) (型->int) maxValue((型->int) a, (型->int) b) { return((a >= b)? a : b); } ↓ //テンプレート関数 .hに書く! template <typename T> T maxVal(T a, T b) { return((a >= b)? a : b); }
テンプレートのパラメータの指定は、```typename T```でも```class T```でも、動きは変わりませんが、「組み込み型」なのか、「class」なのか明示したいときには、分けて書くことがあります!