オーバーロード

オーバーロード:同じ関数名の関数を引数の型、引数の数+戻り値の型の違いで、別の処理で呼び出す機能

        
    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」なのか明示したいときには、分けて書くことがあります!